Search code examples
socketspascal

Sockets in Pascal


How do you use network sockets in Pascal? ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­


Solution

  • Here's an example taken from http://www.bastisoft.de/programmierung/pascal/pasinet.html

    program daytime;
    
    { Simple client program }
    
    uses
       sockets, inetaux, myerror;
    
    const
       RemotePort : Word = 13;
    
    var
       Sock : LongInt;
       sAddr : TInetSockAddr;
       sin, sout : Text;
       Line : String;
    
    begin
       if ParamCount = 0 then GenError('Supply IP address as parameter.');
    
       with sAddr do
       begin
          Family := af_inet;
          Port := htons(RemotePort);
          Addr := StrToAddr(ParamStr(1));
          if Addr = 0 then GenError('Not a valid IP address.');
       end;
    
       Sock := Socket(af_inet, sock_stream, 0);
       if Sock = -1 then SockError('Socket: ');
    
       if not Connect(Sock, sAddr, sizeof(sAddr)) then SockError('Connect: ');
       Sock2Text(Sock, sin, sout);
       Reset(sin);
       Rewrite(sout);
    
       while not eof(sin) do   
       begin
          Readln(sin, Line);
          Writeln(Line);
       end;
    
       Close(sin);
       Close(sout);
       Shutdown(Sock, 2);
    end.