欢迎来到天天文库
浏览记录
ID:55276528
大小:25.50 KB
页数:9页
时间:2020-05-08
《linux下C语言实现文件传输的简单实例(详解).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、linux下C语言实现文件传输的简单实例实例来自互联网,这段测试代码实现了基本的文件传输原理,没有实现错误处理。////////////////////////////////////////////////////////////////////////////////////////file_server.c 文件传输顺序服务器示例////////////////////////////////////////////////////////////////////////////////////////本文件是服务器的代
2、码#include //forsockaddr_in#include //forsocket#include //forsocket#include //forprintf#include //forexit#include //forbzero/*#include#include#include<
3、fcntl.h>#include*/#defineHELLO_WORLD_SERVER_PORT 6666#defineLENGTH_OF_LISTEN_QUEUE 20#defineBUFFER_SIZE1024#defineFILE_NAME_MAX_SIZE512intmain(intargc,char**argv){ //设置一个socket地址结构server_addr,代表服务器internet地址,端口 structsockaddr_inserver_addr; bzero(&
4、server_addr,sizeof(server_addr));//把一段内存区的内容全部设置为0 server_addr.sin_family=AF_INET; server_addr.sin_addr.s_addr=htons(INADDR_ANY); server_addr.sin_port=htons(HELLO_WORLD_SERVER_PORT); //创建用于internet的流协议(TCP)socket,用server_socket代表服务器socket intserver_socket=
5、socket(PF_INET,SOCK_STREAM,0); if(server_socket<0) { printf("CreateSocketFailed!"); exit(1); } //把socket和socket地址结构联系起来 if(bind(server_socket,(structsockaddr*)&server_addr,sizeof(server_addr))) { printf("ServerBindPort:%dFailed!",HELLO_
6、WORLD_SERVER_PORT); exit(1); } //server_socket用于监听 if(listen(server_socket,LENGTH_OF_LISTEN_QUEUE)) { printf("ServerListenFailed!"); exit(1); } while(1)//服务器端要一直运行 { //定义客户端的socket地址结构client_addr structsockaddr_inclient_addr
7、; socklen_tlength=sizeof(client_addr); //接受一个到server_socket代表的socket的一个连接 //如果没有连接请求,就等待到有连接请求--这是accept函数的特性 //accept函数返回一个新的socket,这个socket(new_server_socket)用于同连接到的客户的通信 //new_server_socket代表了服务器和客户端之间的一个通信通道 //accept函数把连接到的客户端信息填写到客
8、户端的socket地址结构client_addr中 intnew_server_socket=accept(server_socket,(structsockaddr*)&client_addr,&length); if(new_server_socket
此文档下载收益归作者所有