Red de conocimiento informático - Aprendizaje de programación - Cómo utilizar el método Socket para comprobar si un determinado puerto está abierto en MFC

Cómo utilizar el método Socket para comprobar si un determinado puerto está abierto en MFC

1. Agregue un archivo de biblioteca ws2_32.lib al proyecto

struct ThreadParam

{

int iPort; /p> p>

int a,b,c,d; //valor de ip

};

UINT TestPost(LPVOID pParam)

{

char ip[16];

int iPort = ((ThreadParam *)pParam)->iPort;

sprintf (ip,"%d. %d. %d.%d",

((ThreadParam *)pParam)->a,

((ThreadParam *)pParam)->b,

((ThreadParam *)pParam)->c,

((ThreadParam *)pParam)->d

SOCKET WinSocket;

struct sockaddr_in local_sin ;

local_sin.sin_family = AF_INET;

local_sin.sin_port = htons(iPort);

local_sin.sin_addr.s_addr = inet_addr(ip) ;

p>

printf( "puerto de escaneo de estratificación %d en %s. . . \n",iPort,ip);

if((WinSocket=socket(AF_INET,SOCK_STREAM ,0))= =INVALID_SOCKET)

{

printf("Error al asignar el socket. Error: %d \n",WSAGetLastError()

); }

else

{

if((connect(WinSocket,(struct sockaddr *)&local_sin,sizeof(local_sin)))==0)

{

printf("%s puerto %d está abierto. \n",ip,iPort);

}

else

printf("%s el puerto %d no está abierto. \n",ip,iPort);

}

}

closesocket(WinSocket);

devuelve 0;

}