Server-Client命名管道缓冲区大小

时间:2012-10-28 14:49:50

标签: client-server named-pipes systems-programming

我编写了一个简单的服务器 - 客户端程序,其中服务器和客户端使用命名管道进行通信。一切正常,但我有一个简单的问题: 在客户端部分,我以这种方式分配将要发送到服务器的消息:char * msg = malloc(sizeof(char));然后我使用gets(msg)从user读取它。最后iam使用write()函数将消息写入管道。 在服务器部分现在,我也分配缓冲区与malloc,但我不知道read()函数的第三个参数应该是什么...因为我可以从手册页中看不到读取的第三个参数是你的字节数我希望阅读并假设这是客户端发送的msg的strlen。问题是在读取iam之前无法知道这一点。是否有办法使这项工作或我应该基本上使用MAX_SIZE服务器部分的缓冲区。 提前感谢您的时间和帮助。:)

1 个答案:

答案 0 :(得分:0)

唯一可行的解​​决方案是上面评论中的onon15提到的。“在发送缓冲区之前发送缓冲区的长度”。

我写这个作为回答标记问题的答案。

感谢onon15!