PC Windows正在發送確認信息。但是這並沒有到達Linux。 我錯過了什麼? (但是,當我不使用Windows 7並在Linux下執行相同的代碼到Linux它的工作。)如何修復Linux UDP連接創建者的Windows 7 UDP回覆? Linux到Linux的工作方式,但Linux到Windows 7不能正常工作
任何想法!
Windows 7的PC:發件人/ Replyer
System.out.println("[UDP]: "
+ "RemoteIP: " + IPAddress.toString() + " "
+ "Port: " + port + " "
+ "Length: " + send.length() + " "
+ "Sending confirmation!"); // it shows it has correct ip, port and lenght
sockOutput = new DatagramPacket(send.getBytes(), send.length(), IPAddress, port);
serverSock.send(sockOutput);// is it failing???
Linux的PC:接收器/指揮官
String receive = sendUDPBytes("request", ip).toString();
if (receive.length()<=0) // Waiting forever, and nothing happens LINUX.
{
System.out.println("FAILED");
System.exit(0);
} else {
try {
/* JOB todo */
} catch (Exception ex) {
}
}
sockOutput.write(receive.getBytes());
public static String sendUDPBytes(String bytes, String[] ip) throws IOException
{
String downloaded = null;
DatagramSocket socket = new DatagramSocket();
InetAddress IPAddress = InetAddress.getByName(ip[2]);
byte[] sendData = new byte[14024];
byte[] receiveData = new byte[14024];
sendData = bytes.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length);
socket.connect(IPAddress, 58889);
if (socket.isConnected())
{
System.out.println("[UDP]: sending....., waiting......... until receive....");
socket.send(sendPacket);
}
DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
socket.receive(receivePacket);
downloaded = new String(receivePacket.getData());
System.out.println("[UDP]: closing.....");
socket.close();
return downloaded;
}
追問:
0)別和混淆「是U IN A SAME SUBSET ???「,所以如果你有/ 28網絡都可以交換數據包。在那種情況下,它可以工作,但大部分時間情況並非如此。
1)的代碼是完美的,當我測試LAN到LAN不管它是什麼操作系統,它的工作原理(沒有防火牆ofcource)
2)當我在它的工作原理相同的PC測試Windows到Windows太
3)當我測試的Linux到Linux它也能工作
4)當我測試的Linux到Windows或Windows到Linux的它也能工作
5)同樣的代碼,我把在一箇中央服務器和我在本地Windows PC和其他ISP服務器上運行的代碼相同ems允許它。
6)SP-結束10小時找到它
猜測:
到底是什麼那麼原因是什麼?那麼,ISP正在丟失發送給我的公共IP的數據包,或者即使我擁有公共IP,也可能會禁用這些數據包。
的Windows到Windows的工作? – m0skit0 2012-01-05 11:08:50
您的Windows防火牆是否已關閉?你可以在同一個窗口框上運行發送者/接收者嗎? – 2012-01-05 11:09:19
請記住,UDP是不可靠的。 – 2012-01-05 11:20:21