Red de conocimientos turísticos - Conocimientos sobre calendario chino - Utilice C para seleccionar el puerto Ethernet para la comunicación.

Utilice C para seleccionar el puerto Ethernet para la comunicación.

Después de que el programa de servicio crea el socket, solo necesita especificar la dirección IP correspondiente a una determinada tarjeta de red al vincular el puerto, como se muestra en el siguiente programa:

======== = ================================================== = ==========

## incluir lt; winsock2.hgt;

#include stdio.hgt; (void) {

//----------------------

// Inicializar Winsock.

WSADATA wsaData;

int iResult = WSAStartup(MAKEWORD(2,2), amp; wsaData);

if (iResult != NO_ERROR) {

printf("Error en WSAStartup()\n");

return

}

//------ - ---------------

//Crea un SOCKET para escuchar

//Solicitudes de conexión entrantes.

SOCKET ListenSocket;

ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP

if (ListenSocket == INVALID_SOCKET) {

printf("Error en el socket(): ld\n", WSAGetLastError());

WSACleanup()

return

}< / p>

//----------------------

// La estructura sockaddr_in especifica el socket que se vincula La serie de direcciones,

// Dirección IP y puerto.

sockaddr_in service;

service.sin_family = AF_INET;

// Modifica la dirección IP de la tarjeta de red que será vinculada por el programa de servicio, escríbela a continuación,

p>

// Si desea vincular el programa de servicio a la dirección IP de la tarjeta de red que se vinculará, escríbalo a continuación,

// Porque una IP corresponde a una tarjeta de red

service.sin_addr.s_addr = inet_addr("127.0.0.1");

/Modifica el puerto que deseas vincule el programa de servicio y escríbalo a continuación

service.sin_port = htons(27015

if (bind( ListenSocket,

(SOCKADDR*) &); servicio,

sizeof(servicio) ) == SOCKET_ERROR) {

printf("bind() falló.\n");

closesocket(ListenSocket) ;

WSACleanup();

devuelve 1;

}

//----------- -------- ---

// Escucha las solicitudes de conexión entrantes en el socket creado

//

if (listen( ListenSocket , 1) == SOCKET_ERROR) {

printf("Error al escuchar en el socket.\n");

closesocket(ListenSocket

WSACleanup()); ;

retorno 1;

}

//--------- -------------

// Crea un SOCKET para aceptar solicitudes entrantes.

SOCKET AcceptSocket;

printf("Esperando que el cliente se conecte...\n");

/ /---------------------

// Acepta la conexión.

AcceptSocket = aceptar(ListenSocket, NULL, NULL);

if (AcceptSocket == INVALID_SOCKET) {

printf("aceptar falló: d\n" , WSAGetLastError());

closesocket(ListenSocket);

WSACleanup()

devuelve 1

; p>

p>

printf("Cliente conectado.\n");

// El socket del servidor ya no es necesario

closesocket(ListenSocket);

WSACleanup();

devuelve 0;

}