Доброго времени суток, уважаемые. Помогите, пожалуйста передать на IRC сервер параметры USER, NICK и послать PRIVMSG, с помощью winsock. Ниже я привел свой код, который коннектится к серваку, но не передает нужные строки, подскажите, пожалуйста в чем у меня может быть ошибка. Телнетом получается все...
| Код | var wsadata : TWSAData; sin: TSockAddrIn; sock: TSocket; I : Integer; B,A,C,P:pchar; log:array[0..1024] of char; log2:array[0..5000] of char; log3:array[0..1024] of char;
const MyComp = '207.44.229.131';
begin
WSAStartUp(257, wsadata); //инициализируем sock:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); sin.sin_family := AF_INET; sin.sin_port := htons(6667); sin.sin_addr.S_addr:=d_addr(MyComp); FillChar(sin.Sin_Zero,SizeOf(sin.Sin_Zero),0); connect(sock,sin,sizeof(sin)); //коннектимся sleep(2000); recv(sock,log3,Length(log3)+1,0); WriteLn(log3); B:=('USER guest tolmoon tolsun :Ronnie Reagan'+ #13#10); for i:=1 to length(B) do begin if send(sock,B[i],1,0) = SOCKET_ERROR then Break; //отправляем end; A:=('NICK test' + #13#10); for i:=1 to Length(A) do begin if send(sock,A[i],1,0)= SOCKET_ERROR then Break; //отправляем end; sleep(3000); // log2:=''; //sleep(5000); //recv(sock,log2,Length(log2)+1,0); //WriteLn(log2); C:=('PRIVMSG dfs- :www' + #13#10); for i:=1 to Length(C) do begin if send(sock,C[i],1,0)=SOCKET_ERROR then Break; //отправляем end; recv(sock,log,Length(log)+1,0); WriteLn(log); sleep(3000); WSACleanup; end.
| |