Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > IRC и winsock


Автор: dfs- 26.7.2005, 01:56
Доброго времени суток, уважаемые. Помогите, пожалуйста передать на 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.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)