0

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

4

1 回答 1

0

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

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

感谢onon15!

于 2012-11-03T03:13:56.480 回答