需要在Linux上具有能够在c中进行双向通信的非阻塞命名管道

kus*_*h87 3 c linux

我想创建一个服务器和一个客户端(两个单独的程序),其中在服务器中创建两个命名管道(我想这是双向流量流所需的最小值),然后客户端启动,客户端和服务器应该能够发送并且始终以两种方式接收数据(全双工类型).我认为这需要我有非阻塞的命名管道.想要一些帮助,因为我已经能够创建半双工类型的通信但是努力制造一个连续的客户端和服务器之间的数据无缝传输发生.

谢谢

Ioa*_*oan 5

可能的选择:

  1. 本地域套接字:具有SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET类型的AF_LOCAL系列.套接字可以是"内存中",意味着您使用唯一字符串连接到它,或者它可以是文件系统中的套接字文件.它的工作方式与任何网络套接字一样,全双工.

  2. 两个管道:一个用于读取,一个用于写入(反之亦然,用于其他过程).与本地域套接字相反,跟踪两个管道可能会更复杂一些.

有用的链接查看管道上的部分和Unix套接字上的部分.