多个客户端在同一端口中广播到服务器

时间:2016-05-22 10:23:30

标签: java sockets udp broadcast datagram

我正在构建一个客户端服务器程序,我想模拟让客户端发送到可以在同一个ipv4中的彼此连接的服务器" 255.255.255.255"我有特定的端口可以工作:端口30381必须有服务器,如果可能的话。什么是最好的解决方案,因为我想多次运行相同的程序?

我在代码中有这个但是它工作得不好它连接相同的程序客户端 - 服务器但不连接到其他程序:

客户:

        datagramSocket = new DatagramSocket(30382);
        datagramSocket.setBroadcast(true);
        this.ipDest = InetAddress.getByName("255.255.255.255");

        byte[] data = new byte[512];
        DatagramPacket request = new DatagramPacket(data, data.length,ipDest, 30381);
        datagramSocket.send(request);
        DatagramPacket reply = new DatagramPacket(data, data.length);
        datagramSocket.receive(reply);
        this.ipDest = reply.getAddress();
        // do something with the reply

服务器:

        this.datagramSocket = new DatagramSocket(null);
        this.datagramSocket.bind(new InetSocketAddress(30381));
        while (true) {
        DatagramPacket request= new DatagramPacket(data, data.length);
        this.datagramSocket.receive(request);
        clientIP = pedido.getAddress();
        clientPort = pedido.getPort();
        System.out.println(clientPort);

        //write list 

        DatagramPacket reply= new DatagramPacket(list.getBytes(),list.length(), clientIP, clientPort);
        this.datagramSocket.send(reply);
    }

对不起,如果这个问题不是很好,我是这个页面的新手。

0 个答案:

没有答案