Código experimental de programación de sockets
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 p>
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.