Я использую класс DatagramSocket
в Java для получения пакетов udp от клиента, написанного на C. Вот код, который получает (сокет сервера уже настроен):
byte[] inputByte = new byte[1];
DatagramPacket recvdPacket = new DatagramPacket(inputByte, inputByte.length);
try {
serverSocket.receive(recvdPacket);
А затем он печатает содержимое. Мои отладочные сообщения (не показанные в этом коде) указывают, что он успешно достигает части receive()
и ожидает (это блокирующий вызов). Вот проблема:
Этот сервер получает пакеты только в секунду времени, когда клиент, отправляющий сообщения, запускается, но не первый. Даже если клиент отправляет несколько пакетов при первом запуске, сервер никогда ничего не показывает, пока во второй раз не будет запущен весь клиент. Можно ли предположить, что проблема на стороне сервера, а не на стороне клиента? (код на стороне клиента не был написан мной ... это отвратительно, и в C).