Size: a a a

2021 January 18

Y

YuS in Delphi & Lazarus
Пьяный Сурикат
Выстрел наудачу, но: можно попробовать 127.0.0.1 или localhost вместо 0.0.0.0
В Java-вском сокете было так:
If the specified address is null, then the system will automatically pick up a port number and a valid local address to bind with the socket.
Спасибо попробую.
источник

AS

Alexey Shumkin in Delphi & Lazarus
YuS
Доброго вечера. Вопрос по Synapse, Lazarus, Ubuntu. Наблюдаю странную картину причем только в Ubuntu.
FSock.CreateSocket;
FSock.SetLinger(True, 5000);
FSock.Bind('0.0.0.0', '8081');
FSock.Listen;
Log('Start Listen - ' + FSock.GetLocalSinPort.ToString);
Запускаю прослушку порта 8081 а начинает прослушиваться совсем другой порт - рандомно.
В лог выводится что слушается порт типа 40867. Ну и он реально слушается. :)
myapp 58546     root    6u  IPv4 675601      0t0  TCP *:40867 (LISTEN)
Наблюдается такое если остановить приложение и запустить по новой. Если же подождать минутку после останова и потом запустить, то тогда указанный порт начинает слушать. Сталкивался кто с таким?
Пуляй демо
источник

Y

YuS in Delphi & Lazarus
Alexey Shumkin
Пуляй демо
Надо его подготовить. Вероятно не сегодня.
источник

Y

YuS in Delphi & Lazarus
Пьяный Сурикат
Выстрел наудачу, но: можно попробовать 127.0.0.1 или localhost вместо 0.0.0.0
В Java-вском сокете было так:
If the specified address is null, then the system will automatically pick up a port number and a valid local address to bind with the socket.
Если указать 127.0.0.1  то только локальные коннекты принимает. Внешние не пускает.
источник

GB

George Bakhtadze in Delphi & Lazarus
YuS
Если указать 127.0.0.1  то только локальные коннекты принимает. Внешние не пускает.
что логично. порт-то какой слушает? можно еще внешний ip указать вместо 127.0.0.1
источник

GB

George Bakhtadze in Delphi & Lazarus
в смысле ip назначенный внешнему интерфейсу
источник

ПС

Пьяный Сурикат... in Delphi & Lazarus
Плюс в фаерволле надо проверить, открыт ли доступ к этому порту
источник

Y

YuS in Delphi & Lazarus
George Bakhtadze
что логично. порт-то какой слушает? можно еще внешний ip указать вместо 127.0.0.1
8017 порт я юзаю но пробовал и другие - без разницы.
источник

GB

George Bakhtadze in Delphi & Lazarus
YuS
8017 порт я юзаю но пробовал и другие - без разницы.
я говорю - если адрес указать, то порт правильный слушает?
источник

Y

YuS in Delphi & Lazarus
Пьяный Сурикат
Плюс в фаерволле надо проверить, открыт ли доступ к этому порту
Фаервол отключен, и проблема уходит через минуту примерно. Заметил кстати, что если клиенты не конектились то все ОК, после перезапуска программы, если же был коннект от клиента, то после перезапуска не корректный порт начинает слушать, если подождать  примерно минуту и запустить то начинает слушать правильный.
источник

Y

YuS in Delphi & Lazarus
George Bakhtadze
я говорю - если адрес указать, то порт правильный слушает?
Щас попробую
источник

DB

Dmitry Belkevich in Delphi & Lazarus
YuS
Фаервол отключен, и проблема уходит через минуту примерно. Заметил кстати, что если клиенты не конектились то все ОК, после перезапуска программы, если же был коннект от клиента, то после перезапуска не корректный порт начинает слушать, если подождать  примерно минуту и запустить то начинает слушать правильный.
у меня такая же фигня в линухах, кроме собственно открытия другого порта. если клиент приконектился к порту, то он остается занятым какое-то время после остановки софта, который порт занимал
источник

DB

Dmitry Belkevich in Delphi & Lazarus
не знаю как такое поведение победить пока
источник

Y

YuS in Delphi & Lazarus
George Bakhtadze
я говорю - если адрес указать, то порт правильный слушает?
Все тоже самое. слушает че попало :)
источник

ПС

Пьяный Сурикат... in Delphi & Lazarus
А SetLinger если закомментить?
источник

Y

YuS in Delphi & Lazarus
Пьяный Сурикат
А SetLinger если закомментить?
Без изменений.
источник

GB

George Bakhtadze in Delphi & Lazarus
знач сорцы смотреть. возможно, там логика есть на случай занятого порта
источник

Y

YuS in Delphi & Lazarus
Примерчик подготовлю, выложу, но уже не сегодня. Ну видимо все таки в Ubuntu что-то держит порт.
источник

Y

YuS in Delphi & Lazarus
Dmitry Belkevich
у меня такая же фигня в линухах, кроме собственно открытия другого порта. если клиент приконектился к порту, то он остается занятым какое-то время после остановки софта, который порт занимал
Возможно другой порт в логике синапса заложен.
источник

Y

YuS in Delphi & Lazarus
прилепил еще обработчик OnStatus в нем возвращается "98,Address already in use".
источник