Главная страница
    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.044 c
15-1202135340
alsov
2008-02-04 17:29
2008.03.09
Сортировка точек


2-1202796912
жорик
2008-02-12 09:15
2008.03.09
открыт ли файл


2-1202814231
Nik77
2008-02-12 14:03
2008.03.09
Работа с таблицами Paradox


8-1176707946
Jeer
2007-04-16 11:19
2008.03.09
Метод распознавания эффекта красных глаз


11-1184740909
max727
2007-07-18 10:41
2008.03.09
Снова KOLWord





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский