читать пакет байтов на клиенте (клиентский сокет) с сервера (ServerSocket), используя Java - PullRequest
1 голос
/ 07 сентября 2010

я новый. Я Java-разработчик (более свежий), и в настоящее время я работаю над проектом BSE, и я столкнулся с проблемой чтения пакета байтов на клиенте (сокет клиента) с сервера (сокет сервера). если ты можешь мне помочь, пожалуйста, помоги мне.

Заранее спасибо

1 Ответ

1 голос
/ 07 сентября 2010

Ну, если вы хотите напрямую взаимодействовать с пакетами, тогда вам нужно использовать DatagramSocket вместо обычных Socket и ServerSocket.

Затем вы посетите эту ссылку , чтобы увидеть хорошее руководство по началу работы с отправкой и получением отдельных пакетов.

Основная идея заключается в том, что клиент или сервер будут блокировать вызов recieve()в то время как он ждет, пока его партнер отправит пакет, используя send().

Если вас не интересуют отдельные пакеты, которые вы указали в своем вопросе, тогда вы захотите использовать Socket и ServerSocket.Первый шаг к общению между ними включает в себя код, который будет выглядеть примерно так:

//Server
// this call will block until the client tries to connect to the server
Socket cientConn = new ServerSocket(8878).accept();
// now you can use the connection's input and output streams to send data

/******************/

// Client
Socket serverConn = new Socket(addressOfServer, 8878);
// now you can use the connections input and output streams

После того, как вы установите соединения, у вас будет в основном 2 цикла чтения / записи.Один на клиенте, а другой на сервере.

while(true) [
    // check for data from an input stream
    ...
    // respond with message back
}

Вам потребуется аналогичный цикл для клиента и сервера.

...