Guest User

Untitled

a guest
Jun 12th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.36 KB | None | 0 0
  1.  Procedure TIRCsocket.Execute;
  2.  var
  3.   ErrorCode, iRecv: Integer;
  4.   Buffer: Array[0..8192] Of Char;
  5.   HostIP: String;
  6.  Begin
  7.   if (strHost = '') or (strNickname = '') or (strChannel = '') then Exit;
  8.  
  9.   ErrorCode := WSAStartup($0202, wsaData);
  10.   if (ErrorCode <> 0) then
  11.    begin
  12.    Writeln('Unable to start winsock, unable to continue. (' + IntToStr(ErrorCode) + ')');
  13.    Readln;
  14.    Exit;
  15.    end;
  16.  
  17.   Close := False;
  18.  
  19.   hSocket := Socket(AF_INET, SOCK_STREAM, 0);
  20.   Addr.sin_family   := AF_INET;
  21.   Addr.sin_port     := htons(6667);
  22.   HostIP := HostToIP(strHost);
  23.   Addr.sin_addr.S_addr := INET_ADDR(PAnsiChar(AnsiString(HostIP)));
  24.   Writeln('IRC IP: ' + HostIP);
  25.  
  26.   ErrorCode := Winsock.Connect(hSocket, Addr, SizeOf(Addr));
  27.   Writeln('last error: ' + IntToStr(WSAGetLastError));
  28.   if (ErrorCode <> 0) then
  29.    begin
  30.    Writeln('Unable to connect., unable to continue. (' + IntToStr(ErrorCode) + ')');
  31.    Readln;
  32.    Exit;
  33.    end;
  34.   Writeln('Connected!');
  35.  
  36.   ZeroMemory(@Buffer, SizeOf(Buffer));
  37.   iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
  38.   while ((iRecv > 0) and (iRecv <> INVALID_SOCKET)) do
  39.    begin
  40.    ReceiveData(hSocket, @Buffer);
  41.    ZeroMemory(@Buffer, SizeOf(Buffer));
  42.    iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
  43.    end;
  44.  
  45.   //We got disconnected
  46.   Writeln('Lost connection');
  47.   CloseSocket(hSocket);
  48.  
  49.   WSACleanup();
  50. End;
Add Comment
Please, Sign In to add comment