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


Автор: Leoo 12.11.2006, 12:20
Не могу понять почуму у меня не передаються сообщения через сокет

Код

  /*************************************/
  /*                           на сервере                         */
  /*************************************/
  //заполняю структуру типа TSockAddr
  addr.sin_family := AF_INET;
  addr.sin_addr.S_addr := inet_addr('172.21.126.222');
  addr.sin_port := htons(21);
  
  //создаю сокет
  sock := socket( AF_INET, SOCK_STREAM, IPPROTO_IP );

  //далее на кнопку вешаю след. код
  listen( sock, SOMAXCONN );
  c := 1024;
  accept( sock, @addr, @c );

  //принимаем сообщение
  recv( sock, str, sizeof(str), d );



  /*************************************/
  /*                           на клиенте                        */
  /*************************************/
  sock := socket( AF_INET, SOCK_STREAM, IPPROTO_IP );

  addr.sin_family := AF_INET;
  addr.sin_addr.S_addr := inet_addr('172.21.126.222');
  addr.sin_port := htons(21);

  err := connect( sock, @addr, sizeof(addr) );
  
  //отсылаем сообщение
  str := 'новое сообщение';
  send( sock, str, Length(str), d );


у меня функция connect возвращает всегда -1
помогите разобраться, пожалуйста!

Автор: rusy 20.11.2006, 02:31
Сначала необходимо инициализировать библиотеку WinSock с помощью команды WSAStartup (2,0), а потом уже создавать сокеты и передавать данные smile 

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