红联Linux门户
Linux帮助

tcp下recv或read函数()读取网络数据

发布时间:2008-07-31 20:28:05来源:红联作者:doupierlvdou
:0wszxc
今天一下午就为了recv or read网络传输过来的数据,但是发现传输完了之后服务器和主机这边的程序都停止了,或者说是一直处于读取数据的状态,但是什么也没有读到。
所以我的程序就卡死在那了。

程序如下:
服务器端:

//下载文件函数
int download_file(char * buf,int c_sockfd)
{
int fd; char buff[100]; int k;
fd=open(buf+3,O_RDWR);
while(k=read(fd,buff,100)>0)
{

write(c_sockfd,buff,100);
memset(buff,0,100);
printf("发送的数据为 %d 位。\n",k);
}
printf("发送数据完毕");
close(fd);
return 0;
}


客户端的程序:
/下载文件函数
int download_file(int c_sockfd)
{
int fd;
char buff[100];
int k;
fd=open("/home/wangli/wujun/tt.txt",O_RDWR|O_CREAT);
while(k=read(c_sockfd,buff,100)>0) //测试一下是一次读完还是循环读
{

write(fd,buff,100);
memset(buff,0,100);
printf("接受的数据为 %d 位。\n",k);

}
printf("接受数据完毕");
close(fd);
return 0;
}


请:
江湖人士亮剑!
文章评论

共有 0 条评论