![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Здраствуйте.
У меня появилась следующая проблема: Пишу на C++ под Visual Studio .NET, используя обычные сокеты. Но появилась необходимость реализовать заместь блокирующих - неблокирующие сокеты. Обьясните пожалуйста в чем разница в реализации таких приложений ? Что и как заменить ? |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
http://vmk.ugatu.ac.ru/sockwin.htm
http://hellknights.void.ru/articles/0x48k-winsockets.html а вообще разница в том , что на всякое событие , генерится мессага -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Спасибо.
Хочу рассказать суть проблемы, которая свела мою работу на ноль, сижу в ужасном состоянии. И так. Я получаю ответ от сервера. while (true) { int iLen = recv(Socket, .... ); if (iLen <= 0) break; } Получаю я например 20 символов. Общий размер данных, которые я хочу получить - 24. Получив первые 20, выполняется следующий шаг цикла, в котором получаю 4 байта. Т.к. число 4 не подходит под условие завершения цикла, выполняется переход в к следующему шагу. И вот сдесь проблема. Сокеты использую блокирующие, уже нет данных которые нужно получать, и программа "виснет" в ожидании ответа сервера. Что делать ? Не хочу использовать асинхронные/неблокирующие сокеты, т.к. уже значительная часть программы написана и прекрасно работает. Что делать ? Это сообщение отредактировал(а) reCoder - 6.11.2006, 21:27 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
передай сначало размер пакета, а потом сам пакет
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Тоесть ? Можно пример ?
Или поясните подробней пожалуйста ! |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
а какой здесь пример те нужен, все делаешь как и раньше, но перед передачей символов, передай число , еол_во символов в буфере,
а на приемной стороне принимаешь это число , и после этого создаешь приемный буфер , и в него принимаешь необходимое число байт, что не понятно ? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Я пишу FTP клиент, а не сервер и клиент.
Так что возможности этот процесс контролировать - нету. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
имхо в фтп клиент имеет возможность спросить у сервера размер файла
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
Причем сдесь размер файла ?
Я даже не могу получить нормально приветственное сообщение ! Понимаете, я не могу получить нормально и в полном обьеме ответ сервера ! Неужели тяжело пример рабочий показать, или указать правельное направление !? Это сообщение отредактировал(а) reCoder - 6.11.2006, 23:11 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 8 Всего: 146 |
http://sources.ru/cpp/cpp_network.shtml#2
А я тебе что направление не давал?! Как ты описал свою проблему такие ответы я и давал! Если бы ты в первом посте описал что ты делаешь , и что не получается , то и получил бы правильный ответ гараздо раньше! PS как говорили древние мудрецы, правильно поставленый вопрос , это 50 % ответа!!!! -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| reCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 27.9.2006 Репутация: нет Всего: нет |
спасибо.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |