我嘗試使用setsockopt函數向接口的多播地址列表添加一個地址,但使用errno EINVAL失敗。我把一些的printk在內核代碼和它看起來像錯誤號最終被內核packet_setsockopt功能,因爲通過了optlen值小於packet_mreq結構的大小設置。對於我的生活,我無法弄清楚爲什麼會發生這種情況。下面是相關代碼: 您的括號 int addMulticastAddress(int
我想從以前添加到接口的別名IP發送數據到多播組。我使用IP_MULTICAST_IF和別名IP調用setsockopt()。但數據總是從該接口的默認IP發送。爲了解釋,我提供了一些代碼。 ip addr show命令給出ens33界面以下輸出: 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state U
我試圖將默認套接字發送緩衝區大小更改爲小尺寸, 以查看UDP吞吐量如何影響小型UDP數據報。 爲此,我使用setsockopt函數與選項SO_SNDBUF和 我試圖將緩衝區大小設置爲64個字節。我也用getsockopt來看 setsockopt函數的結果。 這裏是我使用的代碼: int sock_fd;
struct sockaddr_in server_addr;
static int t
我想寫一個簡單的UDP服務器,它在多播組上發佈它的服務端口,但我無法讓多播工作。我試着在Microsoft文檔中四處查看,並複製/粘貼了他們的一些代碼,但它不起作用。這裏是有問題的代碼: this->port = srvc_port; //11129 in my example
this->mcast_port = mcast_port; //11130 in my example