java read()返回值_C socket read()返回值

我正在开发一个C项目,使用服务器/客户端结构将文件从一个IP地址发送到另一个IP地址 . 从阅读其他帖子,我知道只有套接字关闭时,从套接字读取才会返回0 .

服务器端的相关代码(socket(),bind()和accept()按预期运行)

char *toSend = malloc(packet_size);

size_t bytesRead;

while ((bytesRead = fread(toSend, sizeof(char), packet_size, fp)) > 0) {

printf("Sending: %s \n", toSend);

write(newsockfd, toSend);

usleep(packet_delay*1000000);

}

在客户端:

char buffer[256];

int numRead;

while ((numRead = read(sockfd, buffer, 255)) > 0) {

printf("read %d\n", numRead);

printf("%s\n", buffer);

fwrite(buffer, sizeof(char), 255, fp);

}

客户端connect()调用返回0表示成功,但第一次调用read(sockfd,buffer,255)返回0,尽管当时套接字是打开的;这似乎不应该是可能的 . 有没有人有一些提示?谢谢 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值