2012-09-06 86 views
0

如何在UDP套接字中設置遠程計算機地址,應在接收方獲取套接字地址時返回?如何綁定DatagramSocket中的遠程套接字地址

我的代碼:

DatagramSocket socket = new DatagramSocket(); 

packet = new DatagramPacket(new byte[10],10); 

packet.setAddress(InetAddress.getByName(hostName)); 

packet.setPort(portNum); 

byte[] data = message.getBytes(); 

packet.setData(data); 

packet.setLength(data.length); 

socket.send(packet); 
socket.close(); 

但這建立與本地地址的插座,接收機接收遠程主機的地址我的地址,而不是。

這是什麼解決方案?

+1

我只是不明白你在說什麼。只有我嗎? – nullpotent

+0

@iccthedral我認爲發生了什麼(並且我爲此提出了一個答案)是用戶想要發出請求並將結果發送到遠程計算機而不是本地計算機。問題是,遠程機器不能建立連接,他的本地機器會這樣做,因此所有導致的傳輸都將被髮回給他,而不是遠程機器。 –

+0

這個問題沒有道理。您可以將套接字綁定到的唯一地址是本地地址。 – EJP

回答

0

你是提出請求的人,所以你的地址將被提交回應。如果您希望遠程機器接收響應,則UDP連接(數據報套接字連接)必須由遠程機器建立,而不是您自己的。

+0

有沒有可能滿足我的要求? – mreaevnia

+0

您必須在遠程計算機上安裝程序,從本地計算機遠程安裝到計算機上並從遠程計算機運行程序。這使得您的遠程機器和服務器之間的連接以及本地機器和遠程機器之間的單獨連接成爲可能。 –

相關問題