2017-02-01 19 views
-3

Каждый раз, когда я запускаю клиент, сервер сообщает мне другой номер порта. Я искал на этом и обнаружил, что когда я устанавливаю порт в ноль, он ищет доступный порт, но я изменил его на число, которое я хочу public static final int MYPORT = 5555;, и все время получаю новый номер порта каждый раз с сервера.Как установить номер порта для клиента в программе udp (клиент, сервер) в java?

Это метод печати:

System.out.printf(" using port %d\n", receivePacket.getPort()); 

DatagramSocket socket = new DatagramSocket(null); 
SocketAddress localBindPoint = new InetSocketAddress(MYPORT); socket.bind(localBindPoint); 
SocketAddress remoteBindPoint = new InetSocketAddress(args[0], Integer.valueOf(args[1])); 
+1

пытается размещать (и отступ) более соответствующую часть вашего кода. – freedev

+0

добавьте его в свой пост, а не в комментарии :) – freedev

+0

Он был отредактирован, вы знаете ответ? – Sam

ответ

0

Я думаю, вы пропустили точку, этот кусок кода прослушивает порт 5555:

istruction packet.getPort() в следующем коде возвращает номер порта на удаленный хост, которому отправляется эта датаграмма или из которой получена датаграмма.

int MYPORT = 5555; 
    DatagramSocket dsocket = new DatagramSocket(MYPORT); 
    byte[] buffer = new byte[2048]; 

    // Create a packet to receive data into the buffer 
    DatagramPacket packet = new DatagramPacket(buffer, buffer.length); 

    while (true) { 
    // Wait to receive a datagram 
    dsocket.receive(packet); 

    // Convert the contents to a string, and display them 
    String msg = new String(buffer, 0, packet.getLength()); 
    System.out.println(packet.getAddress().getHostName() + ": " 
     + msg); 

    // Reset the length of the packet before reusing it. 
    packet.setLength(buffer.length); 

    System.out.printf(" using port %d\n", packet.getPort()); 
    } 

Я проверил на месте:

sudo lsof -iUDP -n -P | grep 5555 
java  1606  freedev 5u IPv6 0x9ed7290ce134656f  0t0 UDP *:5555 

 Смежные вопросы

  • Нет связанных вопросов^_^