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


Автор: JiNN72 3.5.2011, 13:52
Программа компилируется, но не происходит соединение с сервером. Почему это может быть? Какие у меня ошибки?
WSAGetLastError() выдает ошибку 0. Может, что то внешнее ее не пускает? Типа ативируса или фаервола.

Код
 WSADATA ws;
 hostent* hn;
 char buff [4096];
 if (FAILED (WSAStartup (MAKEWORD( 2, 2 ), &ws) ) )
 { ListBox1->Items->Add("Библиотека WSAStartup не загружена."); }
 else
 { ListBox1->Items->Add("Библиотека WSAStartup загружена."); }
 SOCKET s = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

 if (s==INVALID_SOCKET)
 { ListBox1->Items->Add("Ошибка сокета."); }
 else
 { ListBox1->Items->Add("Сокет создан успешно."); }
 struct sockaddr_in adr;
 hn=gethostbyname("www.google.com");
 if (NULL==hn)
 { ListBox1->Items->Add("Ошибка получения адреса www.google.com."); }
 else
 { ListBox1->Items->Add("Адресс www.google.com получен."); }
 //заполнение структуры с адресом
 adr.sin_family = AF_INET;
 //adr.sin_addr.S_un.S_addr=*(DWORD*)hn;
 adr.sin_addr.S_un.S_addr=inet_addr("www.google.com");
 adr.sin_port = htons (80);
 //ListBox1->Items->Add(adr.sin_addr.S_un.S_addr);
 if (SOCKET_ERROR==connect(s,(sockaddr*)&adr,sizeof(adr)))
 { ListBox1->Items->Add("Ошибка соединения."); }
 else
 { ListBox1->Items->Add("Соединение установлено."); }
 DWORD dwError=WSAGetLastError();
 ListBox1->Items->Add(dwError);
 closesocket(s);
 ListBox1->Items->Add("Сокет закрыт.");
 WSACleanup();
 ListBox1->Items->Add("Библиотека WSAStartup выгружена.");


C++Builder 6 (10.155)

Исходники прилагаются.

Автор: JiNN72 3.5.2011, 14:33
Код
adr.sin_addr.S_un.S_addr=inet_addr("74.125.79.147");


Разобрался.

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