Red de conocimiento informático - Problemas con los teléfonos móviles - Explicación detallada del método de conexión UDP

Explicación detallada del método de conexión UDP

Programa del lado del servidor (lado receptor):

1.

2. Vincular el socket a la dirección y al puerto local (vinculación).

3. Esperando recibir datos (recvfrom).

4. Cerrar el enchufe.

Programa cliente (remitente):

1. Cree un socket.

2. Enviar datos al servidor (sendto).

3. Cerrar el enchufe.

client.c#include #include void main(){ WORD wVersionRequested; WSADATA wsaData; int err.wVersionRequested = MAKEWORD( 1, 1 ); ( wVersionRequested, &wsaData ); if ( err ! = 0 ) { return } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( }SOCKET sockClient; =socket(AF_INET,SOCK_DGRAM,0); SOCKADDR_IN addrSrv.sin_addr.S_un.S_addr=inet_addr("222.26.28.227"); addrSrv.sin_family=AF_INET; addrSrv.sin_port=htons(AF_INET)sin_port=htons(50) 01 ) ; sendto(sockClient, "Hola",strlen("Hola")+1,0, (SOCKADDR*)& amp;addrSrv,sizeof(SOCKADDR)); // printf("%d\n", sendto(sockClient) , "Hola", strlen("Hola")+1,0,// (SOCKADDR*)&addrSrv,sizeof( SOCKADDR)); closesocket(WSACleanup();}server.c#include ; # incluir void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStartup( wVersionRequested, &wsaData ); si (LOBYTE(wsaData.wVersion)! = 1 || HIBYTE( wsaData.wVersión ) ! = 1 ) { WSACleanup( ); retorno; SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0); addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ ANY); htonl(INADDR_ ANY)sin_port=htons(5001); bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); SOCKADDR_IN addrClient; ; char recvBuf[100] = "\

0"; printf("Esperando mensajes de otros:\n"); int a = recvfrom(sockSrv,recvBuf,100,0, (SOCKADDR*)&addrClient,&len); if(a == SOCKET_ERROR) { printf(" Error\n"); printf("%s\n", WSAGetLastError()); } printf("%s\n",recvBuf); closesocket(sockSrv); WSACleanup();}.