1. Programación basada en comunicación por socket: establezca TCPSocket para la comunicación, el servidor transmite datos de fecha al cliente y el cliente recibe la información.
//Obtener hora
CString strTime;
CTime st = CTime::GetCurrentTime();
strTime = st.Format ("YmdHMS");
//Crear lado del servidor
WORD wVersionRequested;
WSADATA wsaData;
int err; p>
p>
wVersionRequested = MAKEWORD( 1, 1
err = WSAStartup( wVersionRequested, amp; wsaData
if ( err != 0); ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData. wVersion ) != 1 ) {
WSACleanup( );
return
}
SOCKET calcetín = socket(AF_INET, SOCK_STREAM , 0);
int opt = 1;
int len11 = sizeof(opt);
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char). *)amp; opt, len11 );
if (sock == INVALID_SOCKET)
{
// "Error de inicialización";
closesocket(calcetín);
retorno
}
SOCKADDR_IN addrsrv
addrsrv.sin_family = AF_INET
addrsrv.sin_port = htons(6001);
addrsrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
if (bind(sock, (SOCKADDR*) amp; addrsrv, sizeof(SOCKADDR )) == SOCKET_ERROR)
{
// "Error de enlace"
closesocket(sock);
return;
}
listening(sock, 10);
//El cliente recibe la conexión del servidor
char. m_recvBuf[2000];
p>
memset(m_recvBuf, 0, 2000);
mientras(VERDADERO)
{
SOCKET sNew = ::accept(sock, ( SOCKADDR*)amp; addrRemo
te, amp; nAddrLen); //Conexión del cliente recibida
//Hora de envío
int hvsndlen = 0
int sndlen = 0; >
while ((len -hvsndlen) gt; 0)
{
sndlen = enviar(soc, (LPCTSTR)strTime hvsndlen, len-hvsndlen, 0) ;
if (sndlen == SOCKET_ERROR)
{
return -1;
}
hvsndlen = sndlen ;
}
}
// Coloque el programa anterior en su programa principal y debería poder ejecutarse. Hay un tipo CString. Si no está acostumbrado, puede convertir CTime a otros tipos.