|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите пожалуйста как решить следующую задачу. Есть два блокирующих сокета, один пишет socket.getOutputsream().write() второй читает socket.getInputStream().read() Интернет между компьютерами медленный, данные передаются медленно. Буферы у советов большие. Когда я вызываю write(), я жду что управление вернётся только тогда, когда данные будут отправлены, но управление возвращается раньше. Я пробовал делать flush() после write(), ситуация не поменялась. Как сделать так, чтобы управление возвращалось только после того, как данные отправятся? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:24 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Mandarin, Покажите код с блокирующим методом который НЕ РАБОТАЕТ по вашему. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:32 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Вашими советами я уже сыт из предыдущего своего топика, спасибо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:38 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Mandarin, Привыкай ходить в общественное место где твои вопросы по java стоят ноль без палочки. Видно же что ты джун 16 лет. Тогда что выпендриваешься? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:44 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Mandarin Когда я вызываю write(), я жду что управление вернётся только тогда, когда данные будут отправлены, но управление возвращается ... Хотите закрыть нечётное число своих косяков ещё одним - делайте flush(). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 11:49 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Поскольку устный пересказ проблемы нам не выглядит убедительным, я-бы предложил все-таки взять макет кода и на нем все это посмотреть. Надо посмотреть где стоит flush. И возможно сделать tcpdump работающего приложения с тонким логгированием всех событий с таймингами по милисекундам. В данном случае Петро прав. Обсуждать можно только что-то материальное. Иначе у нас - философская беседа выходит. Как говорил один финский перец - покажите мне ваш чортов код... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 12:08 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov делайте flush(). Что-то не помню его у IP-стэка... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:15 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Он есть в буферизирующих стримах. И если Мандарин обернул сокет этим буфером то конечно надо беспокоиться о том что финал каждого сетевого месседжа завершается флашем. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:17 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Что-то не помню его у IP-стэка... На уровне библиотеки ввода-вывода управление этим флагом (если доступно) будет делать flush(), как и для любых других потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:25 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Свезь - процесс взаимноглюкавый То, что где-то кто-то посчитал отправленным, на другом конце впосле может быть еще не принятым. Факт отправки, что в стрим, что в стек ОС, что в провод - одно фиолетово. Отправили и отправили, дальше не наше дело. Если нужен факт, что клиент данные точно получил (и обработал), то это должно решаться какими-то другими средствами IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 14:38 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Mandarin Как сделать так, чтобы управление возвращалось только после того, как данные отправятся? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:02 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
По сути - технический спор на уровне что делать Мандарину? - делать сигнальный протокол с коротким временем отклика (типа SNMP) - делать stream-протокол с высокой пропускной способностью Думаю что в топике недостаточно информации. Мандарин должен рассказать что у него поверх сокетов. Rest? Передача файлов? Что у него показывает netstat на обоих концах? Сколько retransmits? Сколько bad segments? Короче какое качество соединения? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:11 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Андрей Панфилов Странное утверждение "Не верю" ( C ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:11 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
mayton в последнее время показывать код или пытаться воспроизвести проблему с помощью test-case - мовитон так же как и человечиским языком объяснить, что же нужно после прочтения слов "я пробовал делать flush() после write(), ситуация не поменялась" тут же вспоминается "если вдруг открылся люк, не пугайтесь – это глюк" IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:16 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
mayton По сути - технический спор на уровне что делать Мандарину? Когда человек научится излагать проблему, а не собственное видЕние решения - можно будет поговорить и более предметно. Хотя, скорее всего, (ему) просто лень аккуратно разбирать поток данных на отдельные сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:21 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
mayton По сути - технический спор на уровне что делать Мандарину? Если ТС молчит и не может ничего сказать по своей собственной теме? Это форум не уважать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 15:46 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Возможно не хочет палить контору. Package names обычно включают организацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:00 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
mayton Возможно не хочет палить контору. Package names обычно включают организацию. У него 6 тем по java и во всех он молчит))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:09 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Просто он - Делфист. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:15 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
mayton адвокат. Дельфи прогеры в сокет не пишут. Есть протоколы более высокого уровня чтобы переслать xml или заявка.docx. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 16:47 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
Да они - вообще кросавчеки. Читаешь их форумы. Тишь да гладь. Толи нет у них проблем. Толи они вообще не решаются обсуждать системообразующие вещи. Всякие там SOLID, Design Patterns. Даже завидую. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:23 |
|
Socket запись в блокирующем режиме.
|
|||
---|---|---|---|
#18+
mayton, Дельфисты? Я сам оттуда. Это уникальный ЯП + либа визуальных компонентов vcl. Не требуется ORM и спринг)))))) LOL ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2020, 17:28 |
|
|
start [/forum/topic.php?fid=59&msg=39959609&tid=2120802]: |
0ms |
get settings: |
3ms |
get forum list: |
8ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
89ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
439ms |
get tp. blocked users: |
0ms |
others: | 334ms |
total: | 879ms |
0 / 0 |