문제

Pascal에서 네트워크 소켓을 어떻게 사용합니까?­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

도움이 되었습니까?

해결책

다음은 에서 가져온 예입니다. 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(기본적으로 FPC용 rad IDE이자 델파이의 복제품)를 사용하는 경우 다음을 사용할 수 있습니다. 시냅스 소켓 라이브러리.놀랍다.

델파이를 사용하신다면 적극 추천합니다. 인디 소켓, 소켓 및 기타 여러 인터넷 프로토콜(HTTP, FTP, NTP, POP3 등)을 쉽게 조작하기 위한 클래스 세트

Delphi 2007과 함께 제공되는 Indy 버전 10.5에서는 OpenSSL을 사용할 수 없습니다.다음에서 버전 10,6을 다운로드해야 합니다. http://www.indyproject.org/ 그리고 이를 IDE에 설치합니다.

다른 패키지는 RemObject와 같은 Indy를 사용할 수 있으므로 다시 컴파일해야 하며 상호 참조로 인해 까다로울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top