网站策划与建设,网页封装网站怎么做的接口,做查询网站有哪些,wordpress 3.3.1 漏洞1、简述
UDP是无连接的#xff0c;在UDP传输层中并没有客户端和服务端的概念。但是可以在应用层定义客户端和服务端#xff0c;可以灵活的互换客户端和服务端#xff0c;或者同时既是客户端也是服务端。
HP-Socket中在应用层定义了四种UDP组件#xff1a;UdpClient、UdpS…1、简述
UDP是无连接的在UDP传输层中并没有客户端和服务端的概念。但是可以在应用层定义客户端和服务端可以灵活的互换客户端和服务端或者同时既是客户端也是服务端。
HP-Socket中在应用层定义了四种UDP组件UdpClient、UdpServer、UdpCast、UdpNode
2、区别
1UdpClient UdpClient 是客户端的UDP向服务器发送 UDP 数据包后等待接收响应。
2UdpServer UdpServer 是服务端的UDP用于监听端口接收来自多个客户端的 UDP 数据包并可以向这些客户端发送响应。
3UdpCast UdpCast 是专用于 UDP 广播或组播的组件和 UdpClient 类似继承自 IClient本质也属于客户端。
4UdpNode UdpNode 是通用的 UDP 通信节点没有客户端和服务端的概念也可以认为既是客户端也是服务端 还可以实现广播和组播功能。
3、用法
3.1 UdpClient
基本用法
创建 UdpClient 实例。调用 Start 方法启动客户端并指定本地监听的 IP 和端口。使用 Send 方法向服务器发送数据。接收来自服务器的数据。调用 Stop 方法停止客户端。
#include HPSocket.h
#include SocketInterface.hint main() {IUdpClient* pClient CreateUdpClient();if (pClient-Start(0.0.0.0, 0)) {const char* serverAddress 127.0.0.1;USHORT serverPort 5555;const char* message Hello, Server!;pClient-Send(serverAddress, serverPort, (const BYTE*)message, strlen(message));}pClient-Stop();DestroyUdpClient(pClient);return 0;
}3.2 UdpServer
基本用法
创建 UdpServer 实例。实现一个监听器类继承自 IUdpServerListener并实现其方法如 OnPrepareListen、OnReceive 等。设置服务器的监听器。调用 Start 方法启动服务器并指定监听的 IP 和端口。处理接收到的数据。调用 Stop 方法停止服务器
#include HPSocket.h
#include SocketInterface.hclass CListener : public CUdpServerListener {
public:virtual EnHandleResult OnReceive(IUdpServer* pSender, CONNID dwConnID, const BYTE* pData, int iLength) {printf(Received: %s\n, pData);return HR_OK;}
};int main() {IUdpServer* pServer CreateUdpServer();CListener listener;pServer-SetListener(listener);if (pServer-Start(0.0.0.0, 5555)) {printf(Server started.\n);getchar(); // 等待输入退出服务}pServer-Stop();DestroyUdpServer(pServer);return 0;
}4、组播TTL和回环
1TTLTime To Live即“生存时间”用于指定数据包在网络中可以经过的最大路由器跳数数量。
TTL 0数据包只能在本地机器上循环不会被发送到任何网络。TTL 1数据包只能在同一子网内传输不能跨越路由器。较高的TTL值如果TTL值更高数据包可以跨越多个路由器从而到达更远的网络。
2loop环回
启用发送的数据包可以被同一主机上的组播组成员接收。禁用发送的数据包不会被发送者所在的主机接收。