0

伙计们,我在 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 上运行????

欣赏它

4

1 回答 1

0

这似乎是 Windows 7 和 Windows XP 上的某种差异。作为 sje397,它可能是 XP 上的错误行为。我通过编写一个小型 VB 应用程序来写入 UDP 套接字来确认该行为。XP 不允许,但 Windows 7 允许。哦,好吧,我猜我将不得不找到一个替代解决方案,比如 ping 一个 ip 或其他东西来检查连接是否存在。

于 2010-09-23T11:05:31.900 回答