首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

POCO 庫中 DatagramSocket 類詳解:構造、操作與廣播

     編輯:關於C++

Poco::Net::DatagramSocket 完整 API 參考

DatagramSocket 是 POCO 庫中用於 UDP 通信的核心類,提供了數據報套接字的創建、綁定、連接、收發數據以及廣播功能。

1. 構造函數

  • DatagramSocket():創建一個未連接的 IPv4 數據報 Socket。
  • explicit DatagramSocket(IPAddress::Family family):創建指定 IP 類型(IPv4 或 IPv6)的數據報 Socket。
  • DatagramSocket(const SocketAddress& address, bool reuseAddress = false):創建並綁定到指定的 SocketAddress。
  • DatagramSocket(const Socket& socket):從另一個 Socket 的 SocketImpl 創建,要求該 SocketImpl 必須是 DatagramSocketImpl,否則拋出異常。

2. 重載運算符

DatagramSocket& operator = (const Socket& socket);
// 賦值運算符:釋放當前 SocketImpl,附加新的 SocketImpl 並增加引用計數。

3. 常用操作方法

3.1 連接與綁定

  • void connect(const SocketAddress& address):建立到指定地址的連接(UDP 連接是無狀態的,僅設置默認目標地址)。
  • void bind(const SocketAddress& address, bool reuseAddress = false):將 Socket 綁定到本地地址。

3.2 不指定對端的收發數據

  • int sendBytes(const void* buffer, int length, int flags = 0):發送數據到已連接的對端。
  • int receiveBytes(void* buffer, int length, int flags = 0):從已連接的對端接收數據。

3.3 指定對端的收發數據

  • int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0):向指定地址發送數據。
  • int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0):接收數據並獲取發送方地址。

3.4 廣播支持

  • void setBroadcast(bool flag):啟用或禁用廣播功能。
  • bool getBroadcast() const:獲取當前廣播設置狀態。

4. 受保護構造函數

DatagramSocket(SocketImpl* pImpl);
// 供內部使用,通過 SocketImpl 指針構造。

轉載請注明來自柳大的 CSDN 博客:Blog.CSDN.net/Poechant

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved