【发布时间】:2014-07-25 23:03:49
【问题描述】:
我在 2 个不同进程之间使用 AF_UNIX,SOCK_STREAM 套接字进行 IPC。客户端通过服务器获取并处理的套接字发送数据。客户端写入套接字的每个数据块的大小大约为 13 KB,使用以下命令:
Send Command in client : send(s, txPackDisp, sizeof(float)*PACKET_LENGTH, 0);
但是,当我使用以下命令在服务器上接收数据时:
Receive command in server : recv(s, bfoData, PACKET_LENGTH*sizeof(float),0);
每次收到的数据只是我发送的数据的一部分(最后有很多零,不应该是这样)。
所以我的问题是:
我可以通过 AF_UNIX,SOCK_STREAM 套接字发送的数据大小的最大限制是否有限制(根据我的阅读,我认为没有)
套接字是否在传输时将数据分解成更小的块,如果是这种情况,我需要单独接收更小的块还是像我现在正在做的那样接收单个块。
这里用AF_UNIX,SOCK_DGRAM套接字会更好吗?
P.S : 服务端和客户端的主要功能的源代码可以在这个问题中看到:IPC using Unix Domain Sockets
【问题讨论】: