Связь между двумя файловыми дескрипторами (клиентами)

Нет.

Чтобы интерактивная оболочка без входа -исходила из файла при выходе, установите ловушку в.bashrc:

shopt -q login_shell || trap '. "$HOME/.bash_non-login_logout"' EXIT
3
19.10.2019, 04:46
2 ответа

Возможно, вы недостаточно различаете:

файловые дескрипторы(fd )и

втулки .

Вы упомянули «networkfds». Я предполагаю, что они пограничны, как файл NFS может быть особенным в определенных ситуациях. Это не файл, а файл NFS.

Это важно, потому что, на самом деле, опрос fd — это то, что сокету не нужно из-за протокола TCP с отслеживанием состояния. (Если бы я был более в этом уверен, я бы сделал это смело.)

Необработанная пара сокетов UDP будет аналогична паре fd :соединение готово, но как организовать поток данных? Объясняет вездесущность «интернет-протокола» TCP (При том, что IP — это всего лишь уровень ниже, более статичный, но также важный. Смотрите википедию! ).

Значит, твой дизайн тупой? По определению да, немного сыровато. По сравнению с TCP/IP. Файловые дескрипторы — это отдельные контакты для потоков ввода-вывода, а сокеты — это роскошные разъемы эпохи интернета. Есть connectи т.п. только для сокетов.

Вам это понятно? Я наполовину мог следовать вашему вопросу, надеюсь, я не слишком далеко. Пожалуйста скажи.

0
27.01.2020, 21:29

Вопрос: «Кому вы хотите написать?»

Допустим, у вас есть два клиентских сокета, тогда это просто, прочитать (или recv ())на сокет _fd1 и записать (или отправить ())на сокет _fd2. Это так просто.

В C ничто не требует, чтобы вы «ответили» клиенту

Необходимость ответа клиенту (или другому )связана с протоколом/приложением, которое вы хотите внедрить.

При открытии большего количества сокетов возникает единственный вопрос: «Куда уходят данные?».

Вы даже можете отправить одни и те же данные на все клиентские сокеты. Сохраните fds в таблице/списке/во что угодно и для каждой записи "fd" вызовите send (fd, buf, size, flags );

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

Если выбрать, кому вы хотите отправить сообщение, сложно, используйте таблицу структур с дополнительной информацией о каждом клиенте, чтобы принять решение.

Надеюсь, это решит вашу проблему.

1
27.01.2020, 21:29

Теги

Похожие вопросы