Программа компилируется, но не происходит соединение с сервером. Почему это может быть? Какие у меня ошибки? 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)
Исходники прилагаются. |