Иногда существует необходимость проверить какой-либо порт на возможность соединения по нему с указанным IP-адресом с заданием таймаута. Данную задачу можно выполнить с помощью следующего кода: //--------------------------------------------------------------------------- #pragma hdrstop #include <stdio.h> #include <winsock2.h> //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { WSADATA WSAData; SOCKET Client = INVALID_SOCKET; SOCKADDR_IN rmTCP; char *c; if (!WSAStartup(MAKEWORD(1,1), &WSAData)) { printf("WSA started successfully!\r\n"); Client = socket (AF_INET,SOCK_STREAM,0); rmTCP.sin_family = AF_INET; rmTCP.sin_addr.s_addr = inet_addr("10.7.7.50"); rmTCP.sin_port = htons (23); if (connect (Client, (struct sockaddr *)&rmTCP,sizeof(rmTCP)) !=0) { Client = INVALID_SOCKET; printf("client error!\r\n"); } else printf("client connected!\r\n"); shutdown(Client,4); WSACleanup(); } else { printf("WSA startup error!"); }; gets(c); return 0; } |