Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Вниз

Привязать UDPClient к сетевому интерфейсу   Найти похожие ветки 

 
kami   (2008-02-12 22:26) [0]

Есть задача передачи большого объема информации через каналы с ограниченной пропускной способностью (GPRS).
Передача идет UDP-потоком (RTP-протокол). Нужно каждый UDP-клиент "связать" со своим GPRS-модемом, чтобы Windows не направило все данные в один и тот же модем.

Насколько понял, Indy позволяют такое делать только с серверами, а в этом нет необходимости.
Т.о, взяв простейшие UDP компоненты, и просмотрев их внутренности вместе с MSDN получилось следующее :
(привожу только основной код, проверки возвращаемых функциями ответов опускаю, курсивом - добавленный мной код)


procedure TUDPClient.Open;
.....
begin
GetSockAddrIn(FHost, FPort, SockAddrIn); // функция заполняет SockAddrIn
FLocalSocket:= socket(PF_INET, FType, 0);

GetSockAddrIn(FBindHost, FBindPort, localSockAddrIn);
Bind(FLocalSocket, localSockAddrIn, SizeOf(localSockAddrIn));


WSAASyncSelect(FLocalSocket, FHandle, WM_ASYNCSELECT, FD_READ);
connect(FLocalSocket, SockAddrIn, SizeOf(SockAddrIn));
....
end;


Вопрос 1 - правильно ли я понял MSDN (все функции не возвращают ошибок при отработке), и чем можно мониторить откуда (с какого IP) отправляются пакеты?

Вопрос 2 - может, я зря это все затеял и есть готовые компоненты (не слишком сложные, как Indy, чтобы можно было покопаться в их внутренностях) позволяющие осуществить это?


 
Slym ©   (2008-02-13 04:56) [1]

через виндовую таблицу маршрутизации не перепрыгнуть :(
в отсутствии частных маршрутов все будет слать в маршрут по умолчанию, а его последний подключившийся модем


 
Evgeny V ©   (2008-02-13 05:59) [2]


> kami   (12.02.08 22:26)  
> Вопрос 1 - правильно ли я понял MSDN (все функции не возвращают
> ошибок при отработке)

Нет не правильно, такого в MSDN такого в MSDN не написано.....

Если ты связал (bind) сокет  с определенным интерфейсом (адресом), то пакет будет отправлен через этот интерфейс.


 
kami   (2008-02-13 22:41) [3]


> Если ты связал (bind) сокет  с определенным интерфейсом
> (адресом), то пакет будет отправлен через этот интерфейс.

Спасибо, первая часть вопроса снята. На вторую ответил сам - TCPMon отлично справляется с этим.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.042 c
2-1202754186
Patric
2008-02-11 21:23
2008.03.09
Автоматизация процесса


15-1201851982
ZeroDivide
2008-02-01 10:46
2008.03.09
Влияние работы за компьютером на активность головного мозга


2-1202923180
Kirill
2008-02-13 20:19
2008.03.09
Cursor


3-1192715486
Evgeny
2007-10-18 17:51
2008.03.09
Как сделать SQL запрос на выборку всех записей таблицы на этой не


15-1201760901
Kukolev
2008-01-31 09:28
2008.03.09
Срочно нужен наследник TDBCtrlGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский