18,356
社区成员
发帖
与我相关
我的任务
分享
while (!_this->isStoped) {
struct sockaddr lvClientSocketAddr;
int lvsadsize = sizeof(struct sockaddr);
struct ntp_packet lvRec;
int lvBufSize = sizeof(lvRec);
log(L"listen new connect ...");
if (recvfrom(_this->listenSocket, (char*)&lvRec, lvBufSize, 0, (struct sockaddr*)&lvClientSocketAddr, &lvsadsize) == SOCKET_ERROR) {
TCHAR lvBuf[1024];
size_t lvS = 1024 * sizeof(TCHAR);
Utils::SysErrorMessage(GetLastError(), lvBuf, lvS);
log(L"recvfrom failed,%s",lvBuf);
break;
}
lvRec = TimeUtils::ntppacket_ntoh(lvRec);
log(L"new connect comming.");
lvRec = buildResponsePacket();
log(L"send ntp data...");
sendto(_this->listenSocket, (char*)&lvRec, sizeof(ntp_packet), 0, (struct sockaddr*)&lvClientSocketAddr,lvsadsize);
USES_CONVERSION;
log(L"sent to %s OK", A2T(inet_ntoa(((sockaddr_in*)&lvClientSocketAddr)->sin_addr)));
...
...
if (SOCKET_ERROR == sendto(soc, (const char*)&NTP_Send, sizeof(NTP_Send),
0, (struct sockaddr*)&addrSrv, sizeof(addrSrv)))
{
//closesocket(soc);
//return false;
}
int sockaddr_Size = sizeof(addrSrv);
if (SOCKET_ERROR == recvfrom(soc, (char*)&NTP_Recv, sizeof(NTP_Recv),
0, (struct sockaddr*)&addrSrv, &sockaddr_Size))
{
//closesocket(soc);
//return false;
}
else {
lvOK = true;
break;
}
...