Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.1.239] |
|
Сообщ.
#1
,
|
|
|
Здраствуйте!
Есть временной сервер time.windows.com ! Как узнать время этого сервера программно? Пробовал работать про протоколу NTP (описание брал тут: http://ru.wikipedia.org/wiki/NTP ) Пробовал так: WSADATA wsa; SOCKET server = INVALID_SOCKET; struct hostent *pHostent = NULL; struct sockaddr_in ServerAddr; CHAR szBuffer[1024]; if(WSAStartup(MAKEWORD(2, 2), &wsa) != 0) // Init Socket { return 0; } server = socket(AF_INET, SOCK_DGRAM, 0 ); // Create Socket Handle if(server == INVALID_SOCKET) { return 0; } ServerAddr.sin_family = AF_INET; ServerAddr.sin_port = htons( 13 ); ServerAddr.sin_addr.S_un.S_addr = inet_addr( "time.windows.com" ); if(ServerAddr.sin_addr.S_un.S_addr == INADDR_NONE) { pHostent = gethostbyname( "time.windows.com" ); if(pHostent == NULL) return 0; // Fill Sockaddr_in Structure ServerAddr.sin_addr.S_un.S_addr = *(DWORD *)pHostent->h_addr_list[0]; } if(connect(server, (struct sockaddr*)&ServerAddr, sizeof(ServerAddr)) == SOCKET_ERROR) { return 0; } CHAR lNetTime[1000]; int t = recv( server, (CHAR*)&lNetTime, sizeof(lNetTime), 0 ); if(server != INVALID_SOCKET) closesocket(server); WSACleanup(); return 0; Почему то происходит зависание на строчке int t = recv( server, (CHAR*)&lNetTime, sizeof(lNetTime), 0 ); Кто знает, в чём может быть проблема? |
Сообщ.
#2
,
|
|
|
Цитата VictorRT @ Почему то происходит зависание на строчке int t = recv( server, (CHAR*)&lNetTime, sizeof(lNetTime), 0 ); Не зависание, а блокировка... сокет то блокирующий. Со временем не работал могу предположить что серверу надо послать какие то данные в виде запроса. |
Сообщ.
#3
,
|
|
|
Прочитать нужно не только википедию, но и унылые рфц. Там что-то про хелло говорится.
|
Сообщ.
#4
,
|
|
|
Цитата Alexandoros @ Прочитать нужно не только википедию, но и унылые рфц На данном этапе о такой вещи еще не известно. |
Сообщ.
#5
,
|
|
|
так там ссылки прям на странице википедии
|
Сообщ.
#6
,
|
|
|
Цитата VictorRT @ ..Пробовал работать про протоколу NTP... про протокол и протоколы, читать тут а не ширпотребовскую википедию. http://www.rfc-editor.org/rfc/rfc1165.txt удачи Вам (круглый) |