Открытие нескольких соединений TCP от клиента к серверу с использованием случайного порта источника в C - PullRequest
0 голосов
/ 18 ноября 2011

Я пишу программу на C, где для каждого нового запроса, обрабатываемого сервером, мне нужно открывать новое TCP-соединение?То есть каждый запрос от клиента должен обрабатываться отдельным TCP-соединением с сервером, который прослушивает определенный порт.

Может ли кто-нибудь помочь мне в указателях кода?

  • Как сохранитьмассив идентификаторов этого сокета (несколько сокетов, которые нужно открыть)
  • Как я смогу читать (нужно прокрутить все открытые сокеты и посмотреть, будет ли что-то интересное читаться на этом сокете)

Какой фрагмент кода будет очень полезен?

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Вы можете использовать функцию select() (при условии, что вы работаете с <sys/socket.h>), "дает вам возможность контролировать несколько сокетов одновременно. Он скажет вам, какие из них готовы к чтению, какие готов к написанию, и какие сокеты вызвали исключения "из http://beej.us/guide/bgnet/ (здесь вы можете скачать довольно хорошую книгу по основам сетевого программирования).

Для примера сервера с использованием команды выбора http://beej.us/guide/bgnet/examples/selectserver.c

Надеюсь, это поможет

0 голосов
/ 18 ноября 2011

Если вам нужно сохранить состояние с помощью сокета, поместите его в struct вместе с необходимыми данными и свяжите структуры вместе в виде списка.Для проверки, какие розетки готовы, смотрите ответ Малучи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...