我面临的问题是我的服务器正在发送大小为600字节的字符串。现在,为了从服务器读取,我的客户端使用了以下语句

   n=read(sockfd,rbuffer,255);


其中rbuffer是我的缓冲区。

如果我尝试增加read语句(255)中提到的大小,则会遇到分段错误。

现在我知道客户端仅接收服务器发送的部分信息,如何修改或更改读取信息的方式以便可以读取所有字节?

PS:字符串的大小太大,因为我正尝试发送XML字符串。

最佳答案

您还需要增加rbuffer的大小。一种方法是:

unsigned char rbuffer[4096];
n = read(socksfd, rbuffer, sizeof(rbuffer));


这样,如果您决定更改大小,则只需在一个地方进行即可。

10-08 08:10