Форум: "Начинающим";
Текущий архив: 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