Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de red de interfaz de socket

Programación de red de interfaz de socket

Para comunicación de extremo a extremo sin conexión

//#include

//#pragma comment(lib,"WS2_32.lib ")

WSADATA wsd;

SOCKET s;

char buf[1024];

if(WSAStartup(MAKEWORD(2, 2),&wsd)!=0)

{

return -1;//Error

}

s=socket( AF_INET,SOCK_DGRAM,0);

if(s==INVALID_SOCKET)

{

WSACleanup();

devuelve -1 ;//Error al crear el socket

}

SOCKADDR_IN servAddr;

servAddr.sin_family=AF_INET;

servAddr.sin_addr. =inet_addr(%%1);

servAddr.sin_port=htons(INADDR_ANY);

if(bind(s,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN))= = SOCKET_ERROR)

{

closesocket(s);

WSACleanup();

return -1;//conjunto de enlace Error de conexión

}

int nServAddrlen=sizeof(servAddr);

MemoriaCero(buf,sizeof(buf));

if(recvfrom (s,buf,size(buf),0,(SOCKADDR*)&servAddr,nServAddrlen)==SOCKET_ERROR)

{

closesocket(s);

WSACleanup();

return -1;//Error al recibir datos

}

CString %%2(buf);

ZeroMemory(buf,sizeof(buf));

stracpy(buf,%%3);

SOCKADDR_IN clientAddr;

clientAddr.sin_family =AF_INET ;

clientAddr.sin_addr.s_addr=inet_addr(%%4);

clientAddr.sin_port=htons((short)%%5);

int nClientlen=size(clientAddr);

if(sendto(s,buf,sizeof(buf),0,(SOCKADDR*)&clientAddr,nClientlen)==SOCKET_ERROR)

{

closesocket(s);

WSACleanup();

return -1;//Error al enviar datos al servidor

}

cerrar socket(s);

WSACleanup();