我面临的问题是我的服务器正在发送大小为600字节的字符串。现在,为了从服务器读取,我的客户端使用了以下语句
n=read(sockfd,rbuffer,255);
其中rbuffer是我的缓冲区。
如果我尝试增加read语句(255)中提到的大小,则会遇到分段错误。
现在我知道客户端仅接收服务器发送的部分信息,如何修改或更改读取信息的方式以便可以读取所有字节?
PS:字符串的大小太大,因为我正尝试发送XML字符串。
最佳答案
您还需要增加rbuffer
的大小。一种方法是:
unsigned char rbuffer[4096];
n = read(socksfd, rbuffer, sizeof(rbuffer));
这样,如果您决定更改大小,则只需在一个地方进行即可。