同步操作将从 sulayman_tien/poco 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
//// NTPClient.cpp//// Library: Net// Package: NTP// Module: NTPClient//// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.// and Contributors.//// SPDX-License-Identifier: BSL-1.0//#include "Poco/Net/SocketAddress.h"#include "Poco/Net/NTPClient.h"#include "Poco/Net/NTPPacket.h"#include "Poco/Net/DatagramSocket.h"#include "Poco/Net/NetException.h"using Poco::TimeoutException;namespace Poco {namespace Net {NTPClient::NTPClient(IPAddress::Family family, int timeout):_family(family), _timeout(timeout){}NTPClient::~NTPClient(){}int NTPClient::request(const std::string& address) const{SocketAddress addr(address, 123);return request(addr);}int NTPClient::request(SocketAddress& address) const{SocketAddress sa;DatagramSocket ntpSocket(_family);ntpSocket.setReceiveTimeout(_timeout);ntpSocket.bind(sa);SocketAddress returnAddress;NTPEventArgs eventArgs(address);NTPPacket packet;Poco::UInt8 p[1024];packet.packet(&p[0]);ntpSocket.sendTo(p, 48, address);int received = 0;Timestamp start;while (true){try{int n = ntpSocket.receiveFrom(p, sizeof(p) - 1, sa);if (sa != address) // reply mixup, try until timeout ...{if ((Timestamp() - start) < _timeout) continue;break;}if (n < 48) // NTP packet must have at least 48 bytesthrow Poco::Net::NTPException("Invalid response received");packet.setPacket(p);eventArgs.setPacket(packet);++received;response.notify(this, eventArgs);break;}catch (Poco::TimeoutException &){break;}}return received;}} } // namespace Poco::Net
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。