Как открыть сокет для отправки данных только в linux - PullRequest
0 голосов
/ 16 ноября 2011

Как открыть сокет для отправки или получения данных? Если вы хотите использовать сокет для отправки данных, этот сокет не будет принимать никаких данных.

Есть ли для этого возможность розеток?

Ответы [ 3 ]

2 голосов
/ 16 ноября 2011

Если процессы отправителя и получателя находятся на одном компьютере, вы можете использовать pipe вместо сокета, см. Справочную страницу pipe(2), чтобы узнать, как она работает.

Если это для связи по сети, вы можете просто использовать сокет, а не отправлять данные. Если вы хотите убедиться, вы можете использовать shutdown(fd, SHUT_RD), чтобы закрыть записывающую часть вашего сокета.

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

Используйте сокет домена unix и не связывайте его:

fd = socket(PF_LOCAL, SOCK_DGRAM, 0);

Тогда вы можете отправлять через сокет, но никто не может отправить данные в сокет.Даже получатель не может ответить.

0 голосов
/ 12 сентября 2015

Если это для связи по сети, и вы хотите убедиться, что это будет сокет только для записи, вы можете использовать shutdown (fd, SHUT_RD), чтобы закрыть записывающую часть вашего сокета. Если это SOCK_DGRAM - сокет UDP, используйте connect () для подключения к удаленному узлу, а затем вызовите shutdown (). Выключение () отключает подключенный разъем.

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