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

435
1
В общем интересует отправка и получение пакета с сервера, не производя подключение к серверу, как игрок. (Мы знаем IP сервера).
 
Свой сервер на сервере открывать(ServerSocketChannel или DatagramChannel). Зависит от цели, также смотри получение данных, как тебе уже сказали
 
Строго говоря, ничего отправить по TCP серверу, не подключившись к нему, нельзя. Подключиться все-таки нужно. А вот заходить на сервер как игрок - совсем не обязательно. Варианта два: добавить какие-нибудь костыли к ванильному процессу входа на сервер (так работает пинг) или слушать входящие соединения на другой порт и полностью самому (без кода майна) работать с ними. По сути, TCP-соединение - это два потока байт в разные стороны. Пиши что хочешь и читай как хочешь.
 
Код:
Socket socket = new Socket(InetAddress.getByName("ip"), port);//создаём сокет
DataOutputStream out = new DataOutputStream(socket.getOutputStream());//получаем поток для отправки
new Packet101CloseWindow(0).writePacketData(out);//отправляем
не знаю будет работать, но по идее всё правильно
 
А почему TCP? UDP тоже может подойти, смотря для какой цели. Что тебе нужно-то?
 
А тебе важно качество передачи или скорость? Качество - TCP, скорость - UDP. И делай лучше через NIO
 
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
>NIO
Если ты анскилл, то абслютно насрать, что юзать.
 
MrCreppo написал(а):
В общем интересует отправка и получение пакета с сервера, не производя подключение к серверу, как игрок. (Мы знаем IP сервера).
Кто первый должен инициировать подключение?
 
NIO лучше, когда у тебя одновременно пара сотен клиентов подключена, потому что с сокетами для этого придется создавать уйму потоков. Когда у тебя дюжина подключений, то старый добрый блокирующий I/O на сокетах удобнее и не создает никакого удара по производительности.
 
Через нио можно сделать и блокирующее соединение. В неблокируещем самое сложное - селектор.(можно и не делать его). Я так и не смог заставить это работать, сервер не хотел читать 2 сообщение,а читал лишь 1
 
Назад
Сверху