当前位置: 技术问答>linux和unix
关于linux中网络发送文件程序的问题
来源: 互联网 发布时间:2017-01-13
本文导语: 我只有C语言的基础,什么操作系统,线程,网络编程什么的基础一点没有,在查阅了资料之后写了server和client的程序,但是不能写进文件。之前没有循环发送,但是可以正常传送小文件,为了传送大文件,在while(1...
我只有C语言的基础,什么操作系统,线程,网络编程什么的基础一点没有,在查阅了资料之后写了server和client的程序,但是不能写进文件。之前没有循环发送,但是可以正常传送小文件,为了传送大文件,在while(1)里面写了一个判断文件是否发送完毕的循环发送,但是client端一直写不进文件,一直是0字节。
新手一枚,拍砖轻点。
server端的程序如下:#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXDATASIZE 1024
int main(int argc,char *argv[])
{
int listen_fd,send_fd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int portnumber,sin_size;
FILE *fp;
int fplen,filelength,sum_data;
char buffer[MAXDATASIZE];
if(argc!=3)
{
fprintf(stderr,"usage:%s portnumbern",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"rb"))==NULL)
{
fprintf(stderr,"open file error!n");
exit(1);
}
if((portnumber=atoi(argv[2]))
新手一枚,拍砖轻点。
server端的程序如下:#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAXDATASIZE 1024
int main(int argc,char *argv[])
{
int listen_fd,send_fd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int portnumber,sin_size;
FILE *fp;
int fplen,filelength,sum_data;
char buffer[MAXDATASIZE];
if(argc!=3)
{
fprintf(stderr,"usage:%s portnumbern",argv[0]);
exit(1);
}
if((fp=fopen(argv[1],"rb"))==NULL)
{
fprintf(stderr,"open file error!n");
exit(1);
}
if((portnumber=atoi(argv[2]))