在Windows XP和Windows 7上运行一段代码时出现一些不一致的问题。
基本上我试图通过这样做来发送UDP数据包,
DatagramSocket sendSocket = new DatagramSocket();
DatagramPacket dummyPacket = new DatagramPacket(new byte[ 1 ], 1,
configuration.remoteAddress, DUMMY_PORT);
try {
sendSocket.send(dummyPacket);
log("send dummy packet succeeded so assume already connected");
} catch (NoRouteToHostException nrthe) {
log("alreadyConnected: no route to host so assume not connected");
} catch (Exception e) {
errorHandler.handleException("send dummy packet failed", e, ErrorAndWarningHandler.ERROR);
}
在Windows 7上,无论我是否连接到远程主机,我总能获得成功。在Windows XP上,我得到了一个异常,这正是我所期待的。有人可以告诉我,我在这里做错了,因为它无法在Windows 7上运行????
欣赏它
答案 0 :(得分:0)
这似乎与Windows 7和Windows XP存在某种差异。作为sje397,XP上的行为可能是错误的。我通过编写一个小的VB应用程序来写入UDP套接字来确认行为。 XP不允许它,但Windows 7可以。哦,我猜我必须找到一个替代解决方案,比如可能正在ping ip或者其他东西以检查连接是否存活。