powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket запись в блокирующем режиме.
23 сообщений из 23, страница 1 из 1
Socket запись в блокирующем режиме.
    #39959323
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Подскажите пожалуйста как решить следующую задачу.
Есть два блокирующих сокета, один пишет socket.getOutputsream().write() второй читает socket.getInputStream().read()
Интернет между компьютерами медленный, данные передаются медленно. Буферы у советов большие.
Когда я вызываю write(), я жду что управление вернётся только тогда, когда данные будут отправлены, но управление возвращается раньше. Я пробовал делать flush() после write(), ситуация не поменялась. Как сделать так, чтобы управление возвращалось только после того, как данные отправятся?
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959326
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,
Покажите код с блокирующим методом который НЕ РАБОТАЕТ по вашему.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959332
Фотография Mandarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Вашими советами я уже сыт из предыдущего своего топика, спасибо :)
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959336
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin,
Привыкай ходить в общественное место где твои вопросы по java стоят ноль без палочки.
Видно же что ты джун 16 лет.
Тогда что выпендриваешься?
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959341
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin
Когда я вызываю write(), я жду что управление вернётся только тогда, когда данные будут отправлены, но управление возвращается ...
... когда данные переданы IP-стеку, который лучше вас разбирается, что и когда отправлять.
Хотите закрыть нечётное число своих косяков ещё одним - делайте flush().
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959364
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку устный пересказ проблемы нам не выглядит убедительным, я-бы предложил
все-таки взять макет кода и на нем все это посмотреть. Надо посмотреть где стоит
flush. И возможно сделать tcpdump работающего приложения с тонким логгированием
всех событий с таймингами по милисекундам.

В данном случае Петро прав. Обсуждать можно только что-то материальное. Иначе
у нас - философская беседа выходит. Как говорил один финский перец - покажите
мне ваш чортов код...
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959473
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
делайте flush().

Что-то не помню его у IP-стэка...
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959477
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он есть в буферизирующих стримах. И если Мандарин обернул сокет этим буфером
то конечно надо беспокоиться о том что финал каждого сетевого месседжа
завершается флашем.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959484
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Что-то не помню его у IP-стэка...
У стека - специальный флаг, обеспечивающий немедленную отправку всего, что "пока отложено".
На уровне библиотеки ввода-вывода управление этим флагом (если доступно) будет делать flush(), как и для любых других потоков.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959492
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свезь - процесс взаимноглюкавый

То, что где-то кто-то посчитал отправленным, на другом конце впосле может быть еще не принятым.

Факт отправки, что в стрим, что в стек ОС, что в провод - одно фиолетово. Отправили и отправили, дальше не наше дело. Если нужен факт, что клиент данные точно получил (и обработал), то это должно решаться какими-то другими средствами

IMHO
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959520
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mandarin
Как сделать так, чтобы управление возвращалось только после того, как данные отправятся?
Отправка в TCP асинхронная до тех пор пока хватает буфера в ядре. Хотите ожидать - отправляйте гигабайты.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959528
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сути - технический спор на уровне что делать Мандарину?

- делать сигнальный протокол с коротким временем отклика (типа SNMP)
- делать stream-протокол с высокой пропускной способностью

Думаю что в топике недостаточно информации. Мандарин должен рассказать что у него поверх сокетов.
Rest? Передача файлов?

Что у него показывает netstat на обоих концах? Сколько retransmits? Сколько bad segments?

Короче какое качество соединения?
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959529
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов

Странное утверждение
"Не верю" ( C )
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959531
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

в последнее время показывать код или пытаться воспроизвести проблему с помощью test-case - мовитон
так же как и человечиским языком объяснить, что же нужно

после прочтения слов "я пробовал делать flush() после write(), ситуация не поменялась"
тут же вспоминается "если вдруг открылся люк, не пугайтесь – это глюк"

IMHO
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959534
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
По сути - технический спор на уровне что делать Мандарину?
В исходной формулировке - flush().
Когда человек научится излагать проблему, а не собственное видЕние решения - можно будет поговорить и более предметно.
Хотя, скорее всего, (ему) просто лень аккуратно разбирать поток данных на отдельные сообщения.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959547
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
По сути - технический спор на уровне что делать Мандарину?

Если ТС молчит и не может ничего сказать по своей собственной теме?
Это форум не уважать.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959552
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно не хочет палить контору. Package names обычно включают организацию.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959558
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Возможно не хочет палить контору. Package names обычно включают организацию.

У него 6 тем по java и во всех он молчит)))))))
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959564
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто он - Делфист.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959581
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton адвокат.
Дельфи прогеры в сокет не пишут.
Есть протоколы более высокого уровня чтобы переслать xml или заявка.docx.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959602
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да они - вообще кросавчеки. Читаешь их форумы. Тишь да гладь. Толи нет у них проблем.

Толи они вообще не решаются обсуждать системообразующие вещи. Всякие там SOLID, Design Patterns.

Даже завидую.
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959606
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Дельфисты?
Я сам оттуда.
Это уникальный ЯП + либа визуальных компонентов vcl.
Не требуется ORM и спринг)))))) LOL
...
Рейтинг: 0 / 0
Socket запись в блокирующем режиме.
    #39959609
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либа опенсорцная? Вообще сколько там опенсорца?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket запись в блокирующем режиме.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]