URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4977
[ Назад ]

Исходное сообщение
" прием соединений только от локалхоста"

Отправлено kowak , 26-Дек-05 16:32 
есть сервер TCP/IP.
как заставить accept() реагировать только на соединения от локалхоста (или от конкретного адреса)?

Содержание

Сообщения в этом обсуждении
" прием соединений только от локалхоста"
Отправлено DeadMustdie , 26-Дек-05 22:02 
>есть сервер TCP/IP.
>как заставить accept() реагировать только на соединения от локалхоста
>(или от конкретного адреса)?

слушать только на нужном адресе:

int s = socket(AF_INET, SOCK_STREAM, 0);
{
  int option = 1;
  setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option));
}
{
  struct sockaddr_in addr_in;
  addr_in.sin_addr.s_addr = inet_addr("127.0.0.1");
  addr_in.sin_family = AF_INET;
  addr_in.sin_port = htons(1234);
  bind(s, (struct sockaddr *)&addr_in, sizeof(addr_in));
}
listen(s, SOMAXCONN);


" прием соединений только от локалхоста"
Отправлено Аноним , 29-Дек-05 14:45 
А чтобы реагировать только на соединения от конкретного адреса смотри значение, которое возвращается во втором параметре accept().