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