[1.6.4]Отправка/получение пакета с сервера не подключаясь к нему.

435
1
В общем интересует отправка и получение пакета с сервера, не производя подключение к серверу, как игрок. (Мы знаем IP сервера).
 

CumingSoon

Местный стендапер
1,634
12
269
Свой сервер на сервере открывать(ServerSocketChannel или DatagramChannel). Зависит от цели, также смотри получение данных, как тебе уже сказали
 
808
3
124
Строго говоря, ничего отправить по TCP серверу, не подключившись к нему, нельзя. Подключиться все-таки нужно. А вот заходить на сервер как игрок - совсем не обязательно. Варианта два: добавить какие-нибудь костыли к ванильному процессу входа на сервер (так работает пинг) или слушать входящие соединения на другой порт и полностью самому (без кода майна) работать с ними. По сути, TCP-соединение - это два потока байт в разные стороны. Пиши что хочешь и читай как хочешь.
 
Код:
Socket socket = new Socket(InetAddress.getByName("ip"), port);//создаём сокет
DataOutputStream out = new DataOutputStream(socket.getOutputStream());//получаем поток для отправки
new Packet101CloseWindow(0).writePacketData(out);//отправляем
не знаю будет работать, но по идее всё правильно
 

CumingSoon

Местный стендапер
1,634
12
269
А почему TCP? UDP тоже может подойти, смотря для какой цели. Что тебе нужно-то?
 

CumingSoon

Местный стендапер
1,634
12
269
А тебе важно качество передачи или скорость? Качество - TCP, скорость - UDP. И делай лучше через NIO
 
1,990
18
105
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
Если ты анскилл, то абслютно насрать, что юзать.
 
329
13
MrCreppo написал(а):
В общем интересует отправка и получение пакета с сервера, не производя подключение к серверу, как игрок. (Мы знаем IP сервера).
Кто первый должен инициировать подключение?
 
808
3
124
NIO лучше, когда у тебя одновременно пара сотен клиентов подключена, потому что с сокетами для этого придется создавать уйму потоков. Когда у тебя дюжина подключений, то старый добрый блокирующий I/O на сокетах удобнее и не создает никакого удара по производительности.
 

CumingSoon

Местный стендапер
1,634
12
269
Через нио можно сделать и блокирующее соединение. В неблокируещем самое сложное - селектор.(можно и не делать его). Я так и не смог заставить это работать, сервер не хотел читать 2 сообщение,а читал лишь 1
 
Сверху