| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Отправка данных сеть. |
| Автор: val 22.9.2005, 18:24 | ||||
| Привет, всем! Имеется такая проблема. Код ниже, написан для отправки единичного сообщения, работает не всегда правильно. А именно, он иногда не отправляет сообщение:
Вот этот код работает правильно. Отличается он предыдущего тем, что добавляется задержка в 100 миллисекунд перед тем, как закрывать сокет.
Я понимаю, что второй код - это решение проблемы, но нахожу это решение не приемлемым, так ждать надо неизвестно сколько и возможны ситуации, что этого времени просто не хватит. Посоветуйте, как это делать правильно... |
| Автор: COVD 22.9.2005, 18:55 |
| может вам вместо wait..() поставить outputStream.flash() и outputStream.close() ? |
| Автор: val 23.9.2005, 09:22 | ||
Пробовал, не помагает... |
| Автор: Mayk 23.9.2005, 09:25 |
| Попробуй socket.shutdownOutput() Добавлено @ 09:26 http://forum.vingrad.ru/index.php?showtopic=63791&st=0&unread= вот тут обсуждалось |
| Автор: val 26.9.2005, 09:32 |
| Посмотрел, перепробовал практически любые варинты, проблема осталась на месте: и это логичнго socket.shutdownOutput() просто закрывает исходящий поток, не дожидаясь его отправки. Не понятно... |
| Автор: Dancer 26.9.2005, 10:12 | ||
мдя, ситуаця странная. в принципе должно вот такое помочь думаю. попробуй.
|
| Автор: val 26.9.2005, 11:30 | ||
|
| Автор: COVD 26.9.2005, 15:03 |
| Какая-то странная проблема. Как вы определяете, что сокет ничего не отправляет? Согласно протоколу TCP/IP сокет может делать несколько попыток отправить данные, пока не получит подтверждения приемной стороны, что все данные получены. |
| Автор: val 26.9.2005, 16:08 | ||
Принимающая сторона не получает. |
| Автор: 02077461 26.9.2005, 16:13 | ||||
У меня работало.. Добавлено @ 16:16
Это зеркальный сервер... |