Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
 Читать или не читать из сокета?  [new]
iskatelsql
Member

Откуда:
Сообщений: 822
Есть небольшая задача, управлять прогой через сетевое соединение. Я в сокет пишу, прога делает что мне нужно. Иногда она чтото отвечает :) Мне этот ответ не интересен, я его не читаю.

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

Отсюда вопрос - как все это работает (на винде)?

1. при переполнении некоего буфера данные уйдут в никуда
2. прога зависнет, ожидая что прочитают из сокета
3. прога грохнется с неведомой ошибкой
22 апр 15, 22:36    [17551415]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
White Owl
Member

Откуда:
Сообщений: 12585
1-ое
22 апр 15, 22:38    [17551422]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
iskatelsql
Member

Откуда:
Сообщений: 822
White Owl,

спс, значит можно забить :)
22 апр 15, 22:41    [17551436]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819
Ага, забей. Потом на виндах постарше получишь BSOD из-за переполнения non-paged pool.
23 апр 15, 14:01    [17554044]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20793
iskatelsql
Мне этот ответ не интересен, я его не читаю.

Да пофиг, интересен он тебе или нет. Прочитать - обязан. А если неинтересно - то читай сразу в dev/null.
23 апр 15, 15:07    [17554505]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
iskatelsql
Member

Откуда:
Сообщений: 822
Akina,

Так с этим то и сложности - прога по ветру отвечает, я не знаю ответит или нет. (какуюто свою дебаг инфу, одному лешему понятную)
Мне интереснее блокирующий сокет. А тут ждать ответа можно годами.
Можно перевести в неблокирующий режим, читать если читается, а потом обратно...

Вобщем вопрос то какраз в работе сокетов под виндой. Потому что
Akina
Прочитать - обязан
я нигде не встречал, можно ссылочку?
23 апр 15, 23:08    [17556534]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
wadman
Member

Откуда: Санкт-Петербург
Сообщений: 26841
iskatelsql
я нигде не встречал, можно ссылочку?

А логически подумать? Все имеет ограничения, в т.ч. и буферы, которые создаются при подключении.
Если программа запускается на пару минут, может это и не критично, но если предполагается, что она будет работать сутками (то есть надежная), то придется заботится обо всем.
24 апр 15, 09:06    [17557163]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20793
iskatelsql
я не знаю ответит или нет.
А у сокета как бы статус есть (см. метод Select).
Да потом тебе собсно пофиг. Ты просто читай. Пусто? ну и ладно. Непусто? выгребай до пустоты. А как не нужен - не забудь Shutdown + Close.

iskatelsql
я нигде не встречал, можно ссылочку?
А настолько очевидные вещи тебе никто расписывать не будет. Достаточно своей головы и логики, чтобы понять, почему так.
24 апр 15, 09:10    [17557180]     Ответить | Цитировать Сообщить модератору
 Re: Читать или не читать из сокета?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51819
iskatelsql
Мне интереснее блокирующий сокет. А тут ждать ответа можно годами.

Ну так запусти фоновый поток, который и будет ждать годами. Никакие ресурсы он в блокирующем режиме не жрёт.
24 апр 15, 14:18    [17559149]     Ответить | Цитировать Сообщить модератору
Все форумы / Вопрос-Ответ Ответить