سؤال

كيف يمكنك استخدام مآخذ الشبكة في باسكال؟­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

هل كانت مفيدة؟

المحلول

هنا مثال مأخوذ من 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.

نصائح أخرى

إذا كنت تستخدم FPC أو Lazarus (وهو في الأساس rad IDE لـ FPC ونسخة من دلفي) فيمكنك استخدام تشابك عصبى مكتبة المقبس.شيء مذهل.

إذا كنت تستخدم دلفي، أوصي بشدة إندي المقابس، مجموعة من الفئات لتسهيل التعامل مع المقابس والعديد من بروتوكولات الإنترنت الأخرى (HTTP، FTP، NTP، POP3 وما إلى ذلك)

لا يمكنك استخدام OpenSSL مع الإصدار 10.5 من Indy الذي يأتي مع Delphi 2007.يجب عليك تنزيل الإصدار 10,6 من http://www.indyproject.org/ وتثبيته في IDE.

لاحظ أن الحزم الأخرى قد تستخدم Indy، مثل RemObjects، وبالتالي يجب إعادة تجميعها أيضًا وقد يكون هذا أمرًا صعبًا بسبب الإسنادات الترافقية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top