2009-05-18 2 views
-3

Я могу отправить небольшие данные с помощью java nio.проблема с записью больших данных с помощью java nio socket channel

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

message = "very large data"+"\n"; 
ByteBuffer buf = ByteBuffer.wrap(message.getBytes()); 
int nbytes = channel.write(buf); 

все данные отправляются.

Я хочу читать данные с сервера, поэтому я использую BufferedInputStreaReader.readLine(); В данном случае я не получаю сообщение об ошибке и я не могу получить какой-либо данные, которые я послал

Спасибо Дипака

+1

Что вы подразумеваете под "не работает нормально"? У вас есть исключение? –

+1

Вам нужно будет объяснить, что именно не работает ... Исключение, трассировка стека, что-то ... –

ответ

1
write() 

Returns: 
The number of bytes written, possibly zero 

Запись не гарантируются писать все БУФЫ. Вам нужно проверить, сколько написано, и написать еще раз. (Возможно, также подождите (выберите), пока вы не сможете написать снова.)

Возможно, вам также нужно найти хороший учебник java.nio ... Если вам нужен более простой api, используйте блокировку io в java.io вместо ...

 Смежные вопросы

  • Нет связанных вопросов^_^