|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.04.2014, 23:13 | #1 |
7 - классник
Форумчанин
Регистрация: 27.03.2014
Сообщений: 181
|
Работа с неблокирующими сокетами
Сервер отправляет на клиент несколько одинаковых структур (пачку от других подобных клиентов), как их там выгрести? socket.avalable постоянно растет несмотря на то что выполняется чтение receive, но я так подозреваю что не все выгребается а как можно выгребать все? И ни чего если я все сетевое взаимодействие на таймеры повесил 50-10мс ?
|
23.04.2014, 09:00 | #2 |
7 - классник
Форумчанин
Регистрация: 27.03.2014
Сообщений: 181
|
пацаны что вообще никаких думок нет?
может нужно receive в клиентах в отдельный поток сажать а в нем вечный цикл по выборке пока socket.avalable > 0 ? У меня простая школьная задача для 6 кл. средней школы с.Чугуево. Есть два типа приложения в проекте. Клиенты до 12 шт. и Выделенный сервер. сервер собирает сообщения от клиентов и потом отсылает каждому клиенту столько пакетов сколько активных клиентов. но клиенты видят только свои пакеты. как с этим бороться ? если я на сервере шлю сразу 10 одинаковых структур каждому? как их считать отдельно на стороне клиента все, а не одну первую? |
23.04.2014, 09:10 | #3 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Код отправки и код чтения данных в студию! Без кода, в данном случае, практически ничего непонятно в плане причин возникновения проблемы.
Цитата:
Последний раз редактировалось Streletz; 23.04.2014 в 09:14. |
|
23.04.2014, 11:15 | #4 | ||
7 - классник
Форумчанин
Регистрация: 27.03.2014
Сообщений: 181
|
Цитата:
Цитата:
Код. Клиент http://pastebin.com/id2RptFf Сервер http://pastebin.com/1jFEdVDD Я думаю что проблема в принятии данных клиентом. отсылка вроде норм для всех? сервер видит всех клиентов присваивает им ID. но клиент не адекватно себя ведет. |
||
23.04.2014, 17:27 | #5 |
7 - классник
Форумчанин
Регистрация: 27.03.2014
Сообщений: 181
|
Пацаны ну разве никто не писал сетевые танчики ?
У меня задача в пределе именно такая, щас тренируюсь просто на птичках, чтобы нормально отображались для начала они и сервак работал. |
23.04.2014, 18:45 | #6 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Почему нигде нет проверки на предмет количества отправленных и принятых байт? Я бы не был так уверен, что вся информация отправляется и принимается одним махом, ибо тут TCP, а не UPD протокол и деления на пакеты нет.
|
23.04.2014, 23:08 | #7 | ||
7 - классник
Форумчанин
Регистрация: 27.03.2014
Сообщений: 181
|
Цитата:
А как я могу промониторить сколько отправлено и сколько осталось ? Цитата:
|
||
23.04.2014, 23:37 | #8 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Никогда нельзя быть ни в чём уверенным
Send и Receive возвращают количество отправленных и полученных байт соответственно. TCP работает на потоках, а не на пакетах, ему эти структуры по боку. Вполне может треть структуры отправить по первому Send, две трети по второму и то же самое с получением. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с сокетами | Thief_Brother | Работа с сетью в Delphi | 25 | 27.02.2012 11:04 |
Работа с сокетами в php | Detka.i.alex | PHP | 0 | 30.08.2010 17:15 |
Работа с сокетами | zumm | Работа с сетью в Delphi | 10 | 28.03.2010 15:30 |
**Работа с сокетами** | Яр|/||< (^_^) | Работа с сетью в Delphi | 4 | 11.07.2009 18:10 |
Работа с сокетами | vasilii_terkin | Работа с сетью в Delphi | 2 | 13.02.2007 11:08 |