Когда я создаю в INDY сервер, например TIDhttpServer, я заполняю коллекцию Bindings.
SocketHandle:=HTTPServer.Bindings.Add;
SocketHandle.IPVersion:=Id_IPv4;
SocketHandle.IP:='0.0.0.0';
SocketHandle.Port:=8090;
Что означает SocketHandle.IP? Это некая маска или что? Какие значения и как можно сюда записывать?
Если я ввожу 0.0.0.0 он принимает соединения со всех IP адресов.
Если я ввожу 127.0.0.1 клиент соединяется только с локального рабочего места.
Если я ввожу другой IP сети, то выдается ошибка.
Could not bind socket. Address and port are already in use.
Как указать серверу принимать соединения только с одной удаленной конкретной машины?
Использование INDY серверов
Модератор: Модераторы
Это адрес вашего компьютера. Можно записать один из Ваших (присвоенных в сети машине), тогда сервер будет реагировать только на пакеты для данного адреса. Например, если Вашему компьютеру назначены 192.168.0.1 (локальная сеть) и 80.90.200.4 (от провайдера интернет), то введя первый, вы станете получать пакеты только из локалки, и наоборот
Дать указание принимать пакеты от одном машины можно в событии подтверждения соединения, кажется, onClientConnect. Именно там нужно проверить адрес входящего соединения, и "убить" его.
Дать указание принимать пакеты от одном машины можно в событии подтверждения соединения, кажется, onClientConnect. Именно там нужно проверить адрес входящего соединения, и "убить" его.
Т.Е. в binding указывается IP сетевого интерфейса. Ясно.
Если точнее то в binding указывается интерфейс который будет прослушиваться.
