我创建了使用UDP传输数据的客户端和服务器软件(由于TCP带宽限制,我们需要使用UDP)。当我在localhost上运行时,它就像我想要的那样运行,所以我将服务器应用程序移动到实际的服务器上,这就是出现问题的时候。
经过一个小时的调试和跟踪后,会发生这种情况:
客户端在端口25055上运行,服务器在25056-25060上运行。在Wireshark跟踪中,我发现我可以看到数据包是从正确的端口发送的。我已经禁用了防火墙并为该软件授予了顶级用户权限。
重要的代码:
socket = new DatagramSocket(clientPort);
socket = new DatagramSocket(serverPort);
private void sendPacket() throws Exception
{
packet = new DatagramPacket(data, data.length, address, serverPort);
socket.send(packet);
}
private void receivePacket(int packetSize) throws Exception
{
if(data == null || data.length != packetSize)
data = new byte[packetSize];
packet = new DatagramPacket(data, packetSize);
socket.receive(packet);
}
有没有人知道为什么会这样?任何想法都会被大大贬低。
答案 0 :(得分:2)
'端口无法访问'表示该端口没有收到任何内容。你在某处弄错了端口。
BTW第一条打算完成的是什么?因为它没有。