资源描述:
《socket编程实例(文件传输).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、´ËʵÀýÊÇ¿Í»§¶ËÏò·þÎñÆ÷¶Ë´«ËÍÎļþ·þÎñÆ÷¶Ë´úÂëʵÏÖ£º#include#include#include#include#include#include#include#include#include#include#defineFU_SERVER_PORT8080/*setport*/#
2、defineFU_BUFFERSIZE1024/*setbuffersize*/#defineFU_LISTENQ10/*setlistenmaxconncent*/intmain(intargc,char*argv[]){intfu_listenfd,fu_connfd,fu_filefd;/*descriptor*/intfu_read,fu_write;intstruct_size;structsockaddr_infu_servaddr,fu_cliaddr;char*fu_filename;char*p;charbuffer[FU_BU
3、FFERSIZE];fu_listenfd=socket(AF_INET,SOCK_STREAM,0);/*createsocket*/if(fu_listenfd==-1){perror("fu_socket");exit(1);}memset(&fu_servaddr,0,sizeof(fu_servaddr));/*servaddrset0*/fu_servaddr.sin_family=AF_INET;/*initserveraddr*/fu_servaddr.sin_addr.s_addr=INADDR_ANY;fu_servaddr.
4、sin_port=htons(FU_SERVER_PORT);/*bindfu_listenfd*/if(-1==(bind(fu_listenfd,(structsockaddr*)&fu_servaddr,sizeof(fu_servaddr)))){perror("fu_bind");exit(1);}/*listenfu_listenfd*/if(-1==(listen(fu_listenfd,FU_LISTENQ))){perror("fu_listen");exit(1);}/*fileuploadserverstart*/while
5、(1){printf("fileuploadserverstarting......");memset(&fu_cliaddr,0,sizeof(fu_cliaddr));struct_size=sizeof(fu_cliaddr);fu_connfd=accept(fu_listenfd,(structsockaddr*)&fu_cliaddr,&struct_size);if(-1==fu_connfd){perror("fu_accpet");continue;}fu_filename="/root/backup.txt";printf
6、("willuploadfilenameis:%s",fu_filename);fu_filefd=open(fu_filename,O_RDWR
7、O_CREAT
8、O_TRUNC,S_IRWXU);if(fu_filefd<0){perror("openlocalhostfile");continue;}while(fu_read=read(fu_connfd,buffer,FU_BUFFERSIZE)){if(fu_read<0){perror("readclientfile");break;}if(-1==write(fu_filefd,
9、buffer,fu_read)){perror("writingtofilefderror");break;}}if(-1==fu_read
10、
11、-1==fu_write)continue;close(fu_filefd);close(fu_connfd);printf("fileuploadsuccess!");}close(fu_listenfd);return0;}¿Í»§¶Ë´úÂëʵÏÖ£º#include#include#include#include12、h>ar#include#include#include#inc