Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Procedure TIRCsocket.Execute;
- var
- ErrorCode, iRecv: Integer;
- Buffer: Array[0..8192] Of Char;
- HostIP: String;
- Begin
- if (strHost = '') or (strNickname = '') or (strChannel = '') then Exit;
- ErrorCode := WSAStartup($0202, wsaData);
- if (ErrorCode <> 0) then
- begin
- Writeln('Unable to start winsock, unable to continue. (' + IntToStr(ErrorCode) + ')');
- Readln;
- Exit;
- end;
- Close := False;
- hSocket := Socket(AF_INET, SOCK_STREAM, 0);
- Addr.sin_family := AF_INET;
- Addr.sin_port := htons(6667);
- HostIP := HostToIP(strHost);
- Addr.sin_addr.S_addr := INET_ADDR(PAnsiChar(AnsiString(HostIP)));
- Writeln('IRC IP: ' + HostIP);
- ErrorCode := Winsock.Connect(hSocket, Addr, SizeOf(Addr));
- Writeln('last error: ' + IntToStr(WSAGetLastError));
- if (ErrorCode <> 0) then
- begin
- Writeln('Unable to connect., unable to continue. (' + IntToStr(ErrorCode) + ')');
- Readln;
- Exit;
- end;
- Writeln('Connected!');
- ZeroMemory(@Buffer, SizeOf(Buffer));
- iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
- while ((iRecv > 0) and (iRecv <> INVALID_SOCKET)) do
- begin
- ReceiveData(hSocket, @Buffer);
- ZeroMemory(@Buffer, SizeOf(Buffer));
- iRecv := Recv(hSocket, Buffer, SizeOf(Buffer), 0);
- end;
- //We got disconnected
- Writeln('Lost connection');
- CloseSocket(hSocket);
- WSACleanup();
- End;
Add Comment
Please, Sign In to add comment