抱一點期望,有熱心人能幫我看看socket的問題

來源:互聯網
上載者:User
想實現這樣的功能:
向整個區域網路發送廣播,
然後擷取全部的返回資訊。
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, 1);$message="1000";@socket_sendto($socket,$message,strlen($message),0,"255.255.255.255",6000);$ip="";$port=6000;@socket_recvfrom($socket,$message,0,0,$ip,$port);


廣播好像成功了,但是接收的代碼好像有問題,上述代碼會停不下來
其原因是有的ip沒有返回結果,這個代碼好像會一直等
我改為不等,但是所有返回結果都抓取不到了……

希望有熱心人幫忙看看


回複討論(解決方案)

是否成果應檢查 socket_sendto 的傳回值
參數 addr 好像不對吧? udp 方式應該是網段的最後一個地址
比如
192.168.5.0/24
那麼網段為 192.168.5.0 掩碼 255.255.255.0 廣播位址為 192.168.5.255

socket_recvfrom 是偵聽,好像你的 $ip 是空的嘛

版主很給力 聽版主的肯定沒錯

謝謝版主的回複
我需要全網段廣播,如果有人回應,我希望擷取這個回應
$ip是空的,好像是可以這樣傳參的,因為不確定哪個ip會回應
(比我我喊,誰有錢借我點?可能會有2個人答應,我這裡有。我就想得到他們答應的內容)
或許有其他的寫法?

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.