Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Сокеты Windows - порт отправителя   Найти похожие ветки 

 
Michael   (2009-12-02 16:31) [0]

Доброго времени суток!
Для передачи данных по протоколу UDP использую стандартные сокеты Windows. Столкнулся со следующей проблемой - в связи со спецификой работы оборудования на другом конце, мне необходимо указывать явно порт отправителя; иначе он получается "плавающим". Как это можно сделать? Спасибо.


 
Сергей М. ©   (2009-12-02 22:27) [1]

И что же это за "специфика", позволь полюбопытствовать ?
За каким лешим потребовалось указывать порт отправителя на прикладном уровне, если он и так уже фигурирует на транспортном уровне ?


 
DVM ©   (2009-12-03 01:07) [2]


> Как это можно сделать?

bind?


 
Michael   (2009-12-03 08:38) [3]


> Сергей М. ©   (02.12.09 22:27) [1]
> И что же это за "специфика", позволь полюбопытствовать ?
> За каким лешим потребовалось указывать порт отправителя
> на прикладном уровне, если он и так уже фигурирует на транспортном
> уровне ?

Специфика в том, что оборудование на другом конце отвечает именно на тот порт, с которого пришли данные. В ситуации, когда я сам не знаю, с какого порта отправляю данные, я не знаю, на каком порте ловить ответ.


> DVM ©   (03.12.09 01:07) [2]
> bind?

Я так понимаю, что bind осуществляет связывание сокета с локальным адресом для приема данных.


 
Anatoly Podgoretsky ©   (2009-12-03 09:01) [4]

При UDP соединение не устанавливается, поэтому бессмысленно говорить о порте с которого послано, тем более пытать дважды открыть порт, будет просто ошибка.


 
DVM ©   (2009-12-03 11:25) [5]


> 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];
};


 
Сергей М. ©   (2009-12-03 12:02) [6]


> В ситуации, когда я сам не знаю, с какого порта отправляю
> данные, я не знаю, на каком порте ловить ответ.


На том же самом, с которого ты отправил оборудованию дейтаграмму.
Ты сокет-то не закрывай после отправки - с какого сокета отравлял, тот и примет ответ



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.072 c
2-1339910617
Lamer6666
2012-06-17 09:23
2013.03.22
Прощу помощи разобраться со службой.


2-1336838970
АлексеЕей
2012-05-12 20:09
2013.03.22
Задача по информатике


2-1341408918
%s
2012-07-04 17:35
2013.03.22
вывод даты


2-1328946359
Виктор77
2012-02-11 11:45
2013.03.22
Проверка подмены IP-адреса


2-1335082063
Влад_
2012-04-22 12:07
2013.03.22
Кол-во запущенных экземпляров программы