Red de conocimiento informático - Problemas con los teléfonos móviles - Código experimental de programación de sockets

Código experimental de programación de sockets

//Obtener hora

CString strTime

CTime ST = CTime::GetCurrentTime();

strTime = ST Format(" % Y % M % d. % H % M % S ");

//Crear lado del servidor

WORD wVersionRequested

WSADATA wsaData

int err

wVersionRequested = make word(1, 1);

err = wsa startup(wVersionRequested, & ampwsa data);

if (uh! = 0) {

Regresar;

}

if ( LOBYTE( wsaData.wVersion)!= 1 ||

HIBYTE( wsaData.wVersion)! = 1 ) {

WSACleanup();

Retorno;

}

SOCKET calcetín = socket(AF_INET, SOCK_STREAM, 0) ;

int opt ​​= 1;

int len ​​​​11 = sizeof(opt);

setsockopt(calcetín, SOL_SOCKET, SO_REUSEADDR, (char *)& amp ;opt, len 11);

if (sock == INVALID_SOCKET)

{

//"Error de inicialización";

closesocket(sock);

Retorno;

}

SOCKADDR _ IN addrsrv

addrsrv.sin _ family = AF _ INET

addr SRV . sin_port = htons(6001);

addrsrv.sin_addr. Sol. s_addr = htonl(in addr_ANY);

if (bind(sock, (SOCKADDR *)&addrsrv, sizeof(SOCKADDR))= = SOCKET_ERROR)

{

//"Error de enlace"

closesocket(sock);

Regresar;

}

Escuchar(sock, 10 );

//El cliente recibe la conexión del servidor.

char m _ recvBuf[2000];

memset(m_recvBuf, 0, 2000);

mientras (verdadero)

{

SOCKET sNew = ::accept(sock, (SOCKADDR *)& addr remoto & nAddrLen); //Conexión de cliente recibida.

//Hora de envío

int HVS ndlen = 0;

int snd len = 0

mientras ((len -hvsndlen; )>0)

{

sndlen = enviar(soc, (LPCTSTR)strTime +hvsndlen, len-hvsndlen, 0);

if (sndlen = = SOCKET_ERROR)

{

return-1;

}

HVS ndlen+= snd len;

}

}

//Coloque el programa anterior en su programa principal y debería poder ejecutarse. Hay un tipo CString dentro. Si no está acostumbrado, puede convertir CTime a otros tipos.