小编Cro*_*der的帖子

UDP打孔Java示例

我希望借助具有静态IP的服务器与两个客户端进行UDP打孔.服务器在端口7070和7071上等待两个客户端.之后,它会相互发送IP地址和端口.这部分工作正常.但是我无法在两个客户之间建立通信.我在不同的Wifi网络和3G移动网络中尝试了代码.客户端程序抛出IO-Exception"无路由到主机".客户端代码用于两个客户端.一旦用7070端口执行,一次用7071执行.

您认为我是否正确实施了UDP打孔概念?有什么想法让它发挥作用?这是服务器代码,然后是客户端代码.

谢谢你的帮助.

服务器代码:

public class UDPHolePunchingServer {

    public static void main(String args[]) throws Exception {

    // Waiting for Connection of Client1 on Port 7070
    // ////////////////////////////////////////////////

    // open serverSocket on Port 7070
    DatagramSocket serverSocket1 = new DatagramSocket(7070);

    System.out.println("Waiting for Client 1 on Port "
            + serverSocket1.getLocalPort());

    // receive Data
    DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024);
    serverSocket1.receive(receivePacket);

    // Get IP-Address and Port of Client1
    InetAddress IPAddress1 = receivePacket.getAddress();
    int port1 = receivePacket.getPort();
    String msgInfoOfClient1 = IPAddress1 + "-" + …
Run Code Online (Sandbox Code Playgroud)

java sockets udp tunneling hole-punching

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

hole-punching ×1

java ×1

sockets ×1

tunneling ×1

udp ×1