Question
Comment utiliser les sockets réseau en Pascal ?
La solution
Voici un exemple tiré de 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.
Autres conseils
Si vous utilisez FPC ou Lazarus (qui est essentiellement un IDE radical pour FPC et un clone de Delphi), vous pouvez utiliser le Synapse bibliothèque de sockets.C'est incroyable.
Si vous utilisez Delphi, je vous recommande fortement Inde sockets, un ensemble de classes pour une manipulation facile des sockets et de nombreux autres protocoles Internet (HTTP, FTP, NTP, POP3 etc.)
Vous ne pouvez pas utiliser OpenSSL avec Indy version 10.5 fournie avec Delphi 2007.Vous devez télécharger la version 10,6 depuis http://www.indyproject.org/ et installez-le dans l'EDI.
Notez que d'autres packages peuvent utiliser Indy, comme RemObjects, et doivent donc également être recompilés, ce qui peut être délicat en raison des références croisées.