![]() |
|
|
![]()
|
|
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Добрый день.
Как можно реализовать отправку данных по UDP? По приему данных вроде обсуждалось (пока придерживаю данный вопрос). P.S. без Indy -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| SenkraD |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
могу дать пример на API
вот серверный поток
а вот код клиента
там канечно малёха почистить нужно, но я думаю ты разберёшся |
||||
|
|||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Попробовал код:
Убрал, все что посчитал нужным. На форме Edit1 и Edit2 и кнопка, где весь код написан. В Edit1 записываю порт, в Edit2 записываю хост. при нажатии на кнопку выскакивает надпись "Can't create socket", то есть сокет не создался... В каком направлении рыть??? еще я плохо понимаю этот код, часть я прокоментировал, а чать пометил вопросами. Если есть возможность пометьте кометариями код. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
Забыл написать что перед использование функций winsock её еще иниализировать нужно
|
|||
|
||||
| fish9370 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
Это сообщение отредактировал(а) fish9370 - 27.4.2007, 20:07 -------------------- undefined |
||||
|
|||||
| Bima |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
fish9370, за коментарии спасибо.
С отправкой вроде все получилось, хотя проверить не знаю как, сейчас пишу серверную часть для проверки, но возникают ошибки. Вот код: *.срр
*.h
на форме все то же самое, только добавилась еще одна кнопка, для прослушивания UDP. Порт везде устанавливаю 161 при нажатии на Button2, запускается поток и вываливается сообщение "Can't bind" при компилировани выскакивают предупреждения: [C++ Warning] Kod.cpp(134): W8004 'ret' is assigned a value that is never used [C++ Warning] Kod.cpp(135): W8066 Unreachable code с первым понятно, я не использую переменную ret в цикле while а второе предупреждение ссылается на строку: closesocket(sServerListen); если не трудно объясните код, который помечен вопросами. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
||||
|
|||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
1. инициализацию Winsock нужно делать только раз для всего приложения
2. [C++ Warning] Kod.cpp(134): W8004 'ret' is assigned a value that is never used - говорит о том, что ты не используеш эту переменную, а вообще ты в неё количество полученных байт записываеш и это значение можно использовать для проверок разного типа 3. [C++ Warning] Kod.cpp(135): W8066 Unreachable code - у тебя нету выхода с бесконечного цикла поэтому код
никогда не выполнится, о чём тебя компилер и предупреждает 4. Это варнинти и они не столь страшни - по ути эти варнингы ошибки никогда не сделают, но сокет как-то закрыть нужно P.S. Блин, а это ведь было в моём примере )))) |
|||
|
||||
| Bima |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
поместил код в OnCreate. цикл переписал вот так:
но все равно , до цикла дело не доходит, поток останавливается на строке:
ПОЧЕМУ??? Добавлено через 1 минуту и 33 секунды P.S. теперь варнинги убрались P.P.S. что делает строка if (bind(sServerListen, (struct sockaddr *)&localaddr, sizeof(localaddr)) == SOCKET_ERROR) ? -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
||||||
|
|||||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
она привязывает твою прогу (сервер) ко всем возможным ip-адрессам твоей машини и указаному порту
Может что-то уже этот порт слушает поэтому bind и не проходит |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
с bind разобрался... настройки сети в виртуальной машине были не те... запустил программу на основной машине, все заработало...
спасибо -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |