![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает присвоение порта к IdUDPServer [D7, WinXP]
Chaser © (2004-12-22 13:02:00)Передаю данные с компьютера на компьютер при помощи IdUDPServer и IdUDPClient.
У сервера OnUDPRead пишу (ответ клиенту):
DataStringStream:=TStringStream.Create('');
try
DataStringStream.CopyFrom(AData, AData.Size);
if DataStringStream.DataString='xxx'
then
begin
s:='Replied from "'+idUDPServer1.LocalName+'" to "'+DataStringStream.DataString+'" - Client stopped...';
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
end;
Клиент и сервер соединяюся по порту 3128 например.
Проблема: если у сервера поставить на компоненте (во время разработки) порт 3128, то все работает, а если на компоненте поставить порт 1234, а потом во во время работы программы допустим при Button1.Click написать idUDPServer1.DefaultPort:=3128, то почему-то соединения нет.
А если писать OnCreate формы idUDPServer1.DefaultPort:=312, то все соединяется.
Подскажите плиз в чем проблема.
С уважением, Андрей.
Chaser (2004-12-24 15:59:00) [1]Главное, что idUDPServer1.DefaultPort становится 3128, но не соединяется с сервером.
У меня в OnCreate формы стоит idUDPServer1.Active:=true.
Если эту строку закоментировать, и менять порт по ходу работы программы, а уже потом ставить порт Active:=true, то все работает, однако если после этого опять поменять порт на другой (Active:=false, меняем порт, Active:=true), то не работает :(, хотя idUDPServer1.DefaultPort меняется.
Выходит если один раз активировать сервер, то потом уже порт не поменяешь.
Может кто знает как это исправить?
Eraser (2004-12-23 17:33:00) [2]Странно...
Chaser (2004-12-23 14:59:00) [3]Неа, не фурычит :(
Главное, что idUDPServer1.DefaultPort становится = 3128, но соединения с сервером не происходит.
А если писать OnCreate формы idUDPServer1.DefaultPort:=3128, то все соединяется
Eraszer (2004-12-22 20:58:00) [4]Сначала отключай сервак (active:=false) потом меняй порт, потом включай сервак (active:=true)
that's all.