Сокет не читает пакеты

я занимаюсь написанием прокси для игрового сервера, тоесть есть два игровых сервера, и я их объединяю в одну сеть с помощью сокетов. Все работает прекрасно, но в определённый момент, сокет перестает читать пакеты, просто наглухо, ошибок нету.

package org.itxtech.nemisys.network.synlib;

import io.netty.buffer.Unpooled;
import org.itxtech.nemisys.utils.MainLogger;
import org.itxtech.nemisys.utils.ThreadedLogger;

import javax.xml.crypto.Data;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.concurrent.ConcurrentLinkedQueue;

public class UDPSynapse extends Thread {

    public DatagramSocket socket;

    protected ConcurrentLinkedQueue<DatagramPacket> externalQueue;
    protected ConcurrentLinkedQueue<DatagramPacket> internalQueue;

    public UDPSynapse(ThreadedLogger logger, int port, String interfaz)
    {
        this.externalQueue = new ConcurrentLinkedQueue<>();
        this.internalQueue = new ConcurrentLinkedQueue<>();
        try {
            socket = new DatagramSocket(port);
        }catch (Exception e){

        }
        this.start();
    }

    public void pushMainToThreadPacket(DatagramPacket data) {
        this.internalQueue.offer(data);
    }

    public DatagramPacket readMainToThreadPacket() {
        return this.internalQueue.poll();
    }

    public void pushThreadToMainPacket(DatagramPacket data) {
        this.externalQueue.offer(data);
    }

    public DatagramPacket readThreadToMainPacket() {
        return this.externalQueue.poll();
    }
    @Override
    public void run() {
        try {
            int max = 5000;
            while (max > 0) {
                try {
                    DatagramPacket packet = this.readPacket();
                    this.pushMainToThreadPacket(packet);
                    --max;
                } catch (Exception e) {
                    e.printStackTrace();
                    // else ignore
                }
            }
        } catch (Exception e) {
            MainLogger.getLogger().logException(e);
        }

    }

    public DatagramPacket readPacket()
    {
        try {

            DatagramPacket packet = new DatagramPacket(new byte[30000], 30000);
            socket.receive(packet);
            System.out.println("Receive");
            return packet;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;

    }
    public int writePacket(byte[] data, String dest, int port) throws IOException {
        this.socket.send(new DatagramPacket(data,data.length, InetAddress.getByName(dest),port));
        return data.length;
    }
}

Но самое интересное то, что пакеты он отправляет, а вот прочитать - не может. И дело именно в самом прокси-сервере, ибо при перезагрузке клиента - то же самое, а вот когда делаешь перезагрузку прокси-сервера, то всё начинает работать.


Ответы (0 шт):