![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сокеты Windows - порт отправителя [D7, WinXP]
Michael © (2009-12-02 16:31:00)Доброго времени суток!
Для передачи данных по протоколу UDP использую стандартные сокеты Windows. Столкнулся со следующей проблемой - в связи со спецификой работы оборудования на другом конце, мне необходимо указывать явно порт отправителя; иначе он получается "плавающим". Как это можно сделать? Спасибо.
Сергей М. (2009-12-03 12:02:00) [1]
> В ситуации, когда я сам не знаю, с какого порта отправляю
> данные, я не знаю, на каком порте ловить ответ.
На том же самом, с которого ты отправил оборудованию дейтаграмму.
Ты сокет-то не закрывай после отправки - с какого сокета отравлял, тот и примет ответ
DVM (2009-12-03 11:25:00) [2]
> Michael (03.12.09 08:38) [3]
> Я так понимаю, что bind осуществляет связывание сокета с
> локальным адресом для приема данных.
не обязательно для приемы, для передачи тоже можно.
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
Anatoly Podgoretsky (2009-12-03 09:01:00) [3]При UDP соединение не устанавливается, поэтому бессмысленно говорить о порте с которого послано, тем более пытать дважды открыть порт, будет просто ошибка.
Michael (2009-12-03 08:38:00) [4]
> Сергей М. © (02.12.09 22:27) [1]
> И что же это за "специфика", позволь полюбопытствовать ?
> За каким лешим потребовалось указывать порт отправителя
> на прикладном уровне, если он и так уже фигурирует на транспортном
> уровне ?
Специфика в том, что оборудование на другом конце отвечает именно на тот порт, с которого пришли данные. В ситуации, когда я сам не знаю, с какого порта отправляю данные, я не знаю, на каком порте ловить ответ.
> DVM © (03.12.09 01:07) [2]
> bind?
Я так понимаю, что bind осуществляет связывание сокета с локальным адресом для приема данных.
DVM (2009-12-03 01:07:00) [5]
> Как это можно сделать?
bind?
Сергей М. (2009-12-02 22:27:00) [6]И что же это за "специфика", позволь полюбопытствовать ?
За каким лешим потребовалось указывать порт отправителя на прикладном уровне, если он и так уже фигурирует на транспортном уровне ?