Frage

Wie verwendet man Netzwerk-Sockets in Pascal?­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

War es hilfreich?

Lösung

Hier ist ein Beispiel aus 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.

Andere Tipps

Wenn Sie FPC oder Lazarus verwenden (was im Grunde eine tolle IDE für FPC und ein Klon von Delphi ist), können Sie das verwenden Synapse Socket-Bibliothek.Es ist wunderbar.

Wenn Sie Delphi verwenden, kann ich es nur wärmstens empfehlen Indy Sockets, eine Reihe von Klassen zur einfachen Manipulation von Sockets und vielen anderen Internetprotokollen (HTTP, FTP, NTP, POP3 usw.)

Sie können OpenSSL nicht mit Indy Version 10.5 verwenden, die mit Delphi 2007 geliefert wird.Sie müssen Version 10,6 von herunterladen http://www.indyproject.org/ und installieren Sie es in der IDE.

Beachten Sie, dass andere Pakete möglicherweise Indy verwenden, wie z. B. RemObjects, und daher ebenfalls neu kompiliert werden müssen, was aufgrund von Querverweisen schwierig sein kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top