home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sibdemo3.zip / SAMPLES.DAT / SAMPLES / TCPIP / TCPSERV.PAS < prev    next >
Pascal/Delphi Source File  |  1997-07-14  |  2KB  |  87 lines

  1. Program Tcpserv;
  2. Uses Tcpip, ScString;
  3.  
  4. Const Portst = '19000';
  5.  
  6. var Port: Word;
  7.     srbuf: array[0..255] of char;
  8.     csocket: integer;
  9.     nsocket: integer;
  10.     cname_length: integer;
  11.     Client: sockaddr_in;
  12.     server: sockaddr_in;
  13.     rc : integer;
  14.     outbuf: Pchar;
  15.     Clitemp: Sockaddr;
  16.     Tmpmsg: Cstring;
  17.     tmplen: integer;
  18.     x:integer;
  19.  
  20. Begin
  21.  
  22.   clitemp.sa_family := AF_INET;
  23.   clitemp.sa_data := #0#0#0#0#0#0#0#0#0#0#0#0#0#0;
  24.   Client := Sockaddr_in(clitemp);
  25.   Writeln('Checking for Sockets');
  26.   If Sock_init <> 0 then
  27.   begin
  28.     Writeln('TCP Not Loaded.');
  29.     readln;
  30.     Halt(1);
  31.   end;
  32.   port := String2Word(Portst);
  33.   server.sin_port := htons(port);
  34.   Writeln('Creating server socket');
  35.   csocket := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  36.   if Csocket < 0 then
  37.   begin
  38.     writeln('Socket Error');
  39.     readln;
  40.     Halt(2);
  41.   end;
  42.   server.sin_family := AF_INET;
  43.   server.sin_Addr := INADDR_ANY;
  44.   Writeln('Binding Socket');
  45.   Rc := bind(csocket, sockAddr(server), sizeof(serveR));
  46.   If RC < 0 then
  47.   begin
  48.     Psock_errno('Bind()');
  49.     halt(3);
  50.   end;
  51.   Writeln('Waiting for connection');
  52.   rc := Listen(csocket,2);
  53.   If RC <> 0 then
  54.   begin
  55.     Psock_errno('Listen()');
  56.     halt(4);
  57.   end;
  58.   cname_length := sizeof(client);
  59.   Writeln('Accepting Connection');
  60.   nsocket := accept(csocket, PSockaddr(@client), @cname_length);
  61.   If nsocket < 0 then
  62.   begin
  63.     Psock_errno('Accept()');
  64.     Writeln(Sock_errno);
  65.     halt(5);
  66.   end;
  67.   rc := recv(nsocket, srbuf, sizeof(srbuf),0);
  68.   if rc < 0 then
  69.   begin
  70.     Psock_errno('Recv()');
  71.     halt(6);
  72.   end;
  73.   Write('Server Connect: ');
  74.   Write(srbuf);
  75.   Writeln(' just contacted us');
  76.   TmpMsg := 'Hi, We read you loud and clear';
  77.  
  78.   rc := send(nsocket, @tmpmsg,length(tmpmsg), 0);
  79.   If Rc<0 then
  80.   begin
  81.     Psock_errno('Send()');
  82.     halt(7);
  83.   end;
  84.   soclose(csocket);
  85.   soclose(nsocket);
  86. End.
  87.