Проверка порта на соединение по нему

Иногда существует необходимость проверить какой-либо порт на возможность соединения по нему с указанным 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;

}

 
« Предыдущая статья