在linux上UDP封包詭異的問題 - Linux

Table of Contents

※ [本文轉錄自 LinuxDev 看板 #1EIH23K0 ]

作者: fuha (mimi) 看板: LinuxDev
標題: [問題] 在linux上UDP封包詭異的問題
時間: Mon Aug 15 20:26:40 2011

不好意思 最近在把windows上的程式

改成在linux上,發現了一個奇怪的問題

我要寫個收udp broadcast 封包的程式

我在 recvfrom 這邊之前 我會先bind eth0 的 ip

但是我發現我 bind ip 後 就收不到

(255.255.255.255) 和 (192.168.3.255) 的 packet
% 我的網域在 192.168.3.X

但是 如果再在bind ip 是使用 INADDR_ANY

struct sockaddr_in my_addr;
my_addr.sin_addr.s_addr = INADDR_ANY

就可以收到上述兩種 boradcast 的 packet

奇怪的是 我在windows這樣測 就不會有這樣收不到封包的問題?

請問這是 os 差異嗎? 還是我哪裡有搞錯了?

感謝各位高手賜教~


--

All Comments

Liam avatarLiam2011-08-17
如果發個single udp過去 會有收到嗎?
Poppy avatarPoppy2011-08-18
有! 是有收到 但只要發的是文章裡的兩種packet 就收不到