![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
quard |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Здравствуйте!
По задумке, после соединения с сервером создаётся поток, в котором происходит ожидание данных от сервера. Соединение происходит нормально, но после начала цикла ожидания данных мой комп начинает глючить (100% CPU). Что делать? ![]() я полагаю, что ошибка в функции OnReceive:
но на всякий случай полный код клиента:
Зараннее спасибо.... |
||||
|
|||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
1. Асинхронный режим это немного другое. У тебя многопоточность + мультиплексирование + неблокирующий режим.
2. Видимо неблокирующий режим сделан для connect. Иначе зачем? Тогда после connect надо бы сделать обратное преобразование. 3.
Для connect сокет должен находиться в writeset, а не в readset. 4. Оно вообще работает? -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
quard |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Всё сделал как ты сказал и всё также. почему-то функция recv всегда возвращает 0, хотя с сервером соединяется.
Может я что-то неправильно делаю. Вот я написал самый простой код клиента и в нём таже ошибка:
Да ладно тебе, я ведь не каждый день клиент пишу ![]() |
||||
|
|||||
ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
recv возвращает 0, когда соединение закрыто (например другая сторона его закрыла). Т.е. вторую проверку c==0 надо поставить в самое начало.
Да не, просто у меня оно заработало после некоторого тюнинга. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
Goganchic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 678 Регистрация: 18.6.2004 Репутация: нет Всего: 5 |
и что это даст? логика-то будет абсолютно такой же: что он сначала пропустит инструкцию и перейдет ко второй, что сразу же начнет с нее... Чего-то я не понимаю |
|||
|
||||
quard |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2006 Репутация: нет Всего: нет |
Всем спасибо!
Ошибка была в сервере.... ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |