我試圖實現一個簡單的庫,如果應用程序在NAT環境中運行,可以通過UPnP協議發現路由器。我嘗試了兩種方式,多播和數據報,將發現數據包發送到路由器,並嘗試從端口1901偵聽來自路由器的響應。但是,我在代碼中遇到了一些問題。我嘗試了以下三種方式,只有第三種才能正確接收來自路由器的響應。我不知道爲什麼它不是第一種和第二種方式。 第一個:發送多播包,並偵聽端口1901的響應。 代碼: public voi
參考Java 6 API docs for the DatagramSocket類: UDP廣播發送上一個DatagramSocket始終處於啓用狀態。爲了接收廣播數據包 ,DatagramSocket應該綁定到 通配符地址。在一些實現中,當DatagramSocket被綁定到更具體的地址時,還可以接收廣播分組。 有人能告訴我'通配符地址'是什麼嗎?它是以下有效監聽UDP廣播: Multicast
也許我還沒有完全醒了,但我要通過Beej的網絡編程指南對數據報套接字 http://beej.us/guide/bgnet/output/html/multipage/clientserver.html#simpleserver ,我由最初的一片迷茫中客戶端。在演示中沒有指定命令行參數,但是,它看起來像代碼中有多個調用來檢查參數計數。例如,在第一個if語句中,如果計數不存在,則檢查計數爲3。 if
我讀通過我的書,我看到: The first constructor:
public Datagrampacket (byte ibuf [], int ilength)
constructs a DatagramPacket for receiving packets of length ilength.
這只是一個奇怪的文字,或者做DatagramPacket類實際上是用它發送沿接