当我从这样的SOCK_STREAM套接字读取时:
int t;
while ((t = read(clientsocket, buff, 128) > 0))
{
write(1, buff, t);
}
read总是返回1,但是如果我用gdb查看buff,我可以看到我发送的整行。 我正在使用netcat将数据发送到服务器。
答案 0 :(得分:10)
while ((t = read(clientsocket, buff, 128) > 0))
并为t
分配了结果read(clientsocket, buff, 128) > 0
,结果为0
或1
。
要更正,请更改为:
while ((t = read(clientsocket, buff, 128)) > 0)