上午。在Java中的UDP廣播
我很新的Java和套接字連接,但我試圖發送UDP端口8001上的255.255.255.255的UDP數據包/廣播到設備。我可以將數據發送得很好,但是當接收數據時,連接超時。我有一個數據包嗅探器,我可以看到數據包發送,然後設備響應。
我敢肯定,這是一個菜鳥錯誤,我在代碼中遺漏了一些東西,但是我一直被困在它上面,任何幫助將不勝感激。
m_Socket = new DatagramSocket(m_SERVERPORT);
InetAddress address = InetAddress.getByName(m_SERVERIP);
m_DataPack = new DatagramPacket(m_SERVERCMD.getBytes(), m_SERVERCMD.getBytes().length,
address, m_SERVERPORT);
m_Socket.setBroadcast(true);
m_Socket.connect(address, m_SERVERPORT);
m_Socket.send(m_DataPack);
m_DataPack = new DatagramPacket(data, data.length,
address, m_SERVERPORT);
m_Socket.receive(m_DataPack); // This is where it times out
data = m_DataPack.getData();
String received = data.toString();
System.out.println("Received: " + received);
m_Socket.close();
謝謝Gig'Em。
編輯:
我不知道如果這有助於但是當我看m_Socket對象,我可以看到下面的發送權之前:
bound = true;
close = false;
connectedAddress = Inet4Address (id = 32) (-1,-1,-1,-1);
connectedPort = 8001;
connectState = 1;
created = true;
impl = PlainDatagramSocketImpl;
oldImpl = false;
和m_DataPack對象如下:
address = Inet4Address (id = 32) (-1,-1,-1,-1);
bufLength = 6 (size of packet I'm sending is 6 char long);
offset = 0;
port = 8001;
你確實意識到你的Gig'Em疏遠了美國較大CS計劃的畢業生,對吧? – jasonmp85 2010-06-02 04:29:14
@ jasonmp85對於那些想知道它是什麼意思的非德克薩斯人來說:https://en.wikipedia.org/wiki/Traditions_of_Texas_A%26M_University#Gig_.27em(是的,我必須查看它;)) – Matthieu 2017-10-03 13:34:43