Odbieranie pakietów - małe pytanie

0

Witam. Szukałem trochę na forum, ale ciągle nie jestem pewien. Mianowicie czy odebranie datagramu od serwera przez obiekt Socket wiąże się z koniecznością przekierowywania portów u mnie? Chodzi mi o pobranie danych na temat serwera gry i gdy stawiam go u siebie to nie ma problemu, ale dostaję timeouta przy odbieraniu pakietu ze zdalnego serwera.

0

Mozna troszke kodu poprosic?
na troszke kodu poprosic?

0

Tutaj wysyłam i odbieram pakiet. Dostaję oczywiście wiadomość "Cannot receive packet.".

        try {
            this.socket.send(packet);
        } catch (IOException ex) {
            System.out.println("Cannot send packet.");
            System.exit(-1);
        }
        
        DatagramPacket receive = new DatagramPacket(new byte[256], 256);
        try {
            this.socket.setSoTimeout(5000);
            this.socket.receive(receive);
        } catch (IOException ex) {
            System.out.println("Cannot receive packet.");
            System.exit(-1);
        }

Gniazdo otwieram w konstruktorze:

            try {
                this.socket = new DatagramSocket();
            } catch (SocketException ex) {
            System.out.println("Cannot create socket.");
            System.exit(-1);
        }

Zwiększenie timeouta nic nie daje. Dałem 0 to program chodził 10 minut i nic nie dostał. Na lokalnym serwerze wszystko działa jak należy.

0

Hmmm nie wiem bym musiał pokombinować z całym kodem xD natomiast ja używam bibliotekę Netty http://www.jboss.org/netty. I jest wiele szybciej i łatwiej napisać coś takiego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1