13 / 12 / 4
Регистрация: 20.05.2016
Сообщений: 325
|
|
1 | |
Вызов socket.Poll с SelectMode.SelectRead после Receive25.03.2017, 09:22. Показов 2785. Ответов 7
Метки нет (Все метки)
Почему после полного считывания данных с сокета методом rcv, метод select продолжает говорить о том, что данные для чтения доступны. Можно подождать 1 мс, как решение, но всё таки хотелось бы знать почему так происходит.
0
|
25.03.2017, 09:22 | |
Ответы с готовыми решениями:
7
Socket.Send.Receive - Сообщение делится на фрагменты произвольной длины Метод Socket.Receive(Byte[], Int32, Int32, SocketFlags) отрабатывает некорректно Невозможно создать Socket: Socket sock = new Socket(someHostString,somePortInt); Особенности реализации poll() |
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
25.03.2017, 16:53 | 2 |
dm stark, у меня не говорит
0
|
13 / 12 / 4
Регистрация: 20.05.2016
Сообщений: 325
|
||||||
25.03.2017, 17:46 [ТС] | 3 | |||||
Хм. Тогда попробуйте на C#:
1
|
Модератор
3387 / 2159 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
|
|
25.03.2017, 18:22 | 4 |
dm stark, в c# не пишу да и ветка не для c#
0
|
13 / 12 / 4
Регистрация: 20.05.2016
Сообщений: 325
|
|
25.03.2017, 21:55 [ТС] | 5 |
Разумно. Напишу в C#.
Хотя странно. Решёточный сокет является просто обёрткой над нативными функциями. Если там такая фигня, то и в c++ должно быть так же. А вот нет...
0
|
13 / 12 / 4
Регистрация: 20.05.2016
Сообщений: 325
|
|
25.03.2017, 21:59 [ТС] | 6 |
Странно, но есть вызывать Socket.Poll(-1, SelectMode.SelectRead) после чтения всех данных с сокета продолжает говорить, что данные на сокете всё таки есть и возвращает true. Подожди 1 мс и это безобразие прекратится...
Почему, собственно, так это работает?
0
|
13 / 12 / 4
Регистрация: 20.05.2016
Сообщений: 325
|
|
29.03.2017, 15:37 [ТС] | 8 |
Сообщение было отмечено tezaurismosis как решение
Решение
Ну раз никто не знает, отвечу сам.
Available и будет говорить о том, что данных нет, т.е. 0. А вот Poll постоянно срабатывает, поскольку данные на сокете реально доступны, хотя я их и читаю - не все сразу.
1
|
29.03.2017, 15:37 | |
29.03.2017, 15:37 | |
Помогаю со студенческими работами здесь
8
Работа с VK API, Long Poll После Socket.Accept() зависает приложение плагин для голосования YOP Poll Нужно ли освобождать память после Socket.SendStream? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |