![]() |
|
Модераторы: feodorv |
![]()
|
|
| DSan |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 10.2.2007 Репутация: нет Всего: нет |
Имеется Win32 клиент-серверное приложение, использующее для обмена данными UDP дейтаграммы.
Серверная часть:
Клиентская часть:
Сервер получает и посылает данные, с ним все нормально. Клиент посылать данные посылает, но принимать не хочет. Функция recvfrom не проходит, т.е. приложение не ждет пока данные придут, а просто проскакивает дальше и выдает ошибку Receive Error. Я так понимаю по той причине, что для ClientSocket-а не была явно вызвана функция bind, но ее невозможно вызвать на одной и той же машине второй раз, ведь порт уже "забинден" Серверной частью. По мануальчикам вычитал, что привязка к адресу должна осуществляться неявно при вызове таких функций как sendto, но почему-то не получается. Для консольных приложений прокатывает и без bind, а в моем случае нет. Что я делаю не так? Это сообщение отредактировал(а) DSan - 2.6.2007, 00:26 |
||||
|
|||||
| ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
Видимо вместо ServerSocket надо ClientSocket. -------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
| DSan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 10.2.2007 Репутация: нет Всего: нет |
Блин, и правда.. Невнимательность.. Чтобы не создавать вторую тему, задам еще один вопрос здесь: есть сокет, который посылает широковещательный запрос (настроен соответственно setsockopt(mysock, SOL_SOCKET, SO_BROADCAST, (char*)&sockopt, sizeof(sockopt)); ) Можно ли с помощью него получать ответные данные через recvfrom? Либо под это дело надо второй сокет приспосабливать? |
|||
|
||||
| ptr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 661 Регистрация: 31.5.2006 Где: Новосибирск Репутация: 9 Всего: 14 |
По идее можно, но прежде надо сделать bind. Но зачем так делать? Тебе сложно завести ещё один сокет?
-------------------- Единственный способ определить границы возможного - это выйти за эти границы, в невозможное. Артур Кларк. |
|||
|
||||
| DSan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 10.2.2007 Репутация: нет Всего: нет |
Нет, не сложно Спасибо за ответы. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |