0
我使用命令行:如何让客户端知道服务器已经完成在C中发送数据?
echo -e -n“GET/HTTP/1.0 \ r \ n \ r \ n”| nc -u -s
模仿客户端来测试我的服务器程序。
客户端一直阻止等待服务器的数据。如何让客户端知道服务器已发送所有数据并停止阻止。
这是我的代码发送文件内容的剪辑。
while(1){
bzero(buf,MAX);
fread(buf,MAX,1,fp);
if(filelen>=MAX){
sendto(sockfd, buf, MAX, 0,
(struct sockaddr *) &cli_addr, cli_len);
filelen-=MAX;
}
else{
sendto(sockfd, buf, filelen, 0,
(struct sockaddr *) &cli_addr, cli_len);
fclose(fp);
break;
}
}
但是客户怎么知道服务器不会发送更多的数据呢?我希望服务器在完成响应之后可以收到另一个请求。我在while循环中使用sendto()来发送数据包中的整个文件内容。我只是为了练习而使用UDP,我知道UDP不适合HTTP。 – Rapidturtle
当服务器关闭连接时,nc将退出。如果您有其他问题,请提出新问题。 – MrTux