基于C 的简单的客户机服务器程序及结果.pdf

上传人:飞****9 文档编号:136862434 上传时间:2020-07-03 格式:PDF 页数:6 大小:139.28KB
返回 下载 相关 举报
基于C 的简单的客户机服务器程序及结果.pdf_第1页
第1页 / 共6页
基于C 的简单的客户机服务器程序及结果.pdf_第2页
第2页 / 共6页
基于C 的简单的客户机服务器程序及结果.pdf_第3页
第3页 / 共6页
基于C 的简单的客户机服务器程序及结果.pdf_第4页
第4页 / 共6页
基于C 的简单的客户机服务器程序及结果.pdf_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《基于C 的简单的客户机服务器程序及结果.pdf》由会员分享,可在线阅读,更多相关《基于C 的简单的客户机服务器程序及结果.pdf(6页珍藏版)》请在金锄头文库上搜索。

1、服务器 #include #pragma comment(lib,Wsock32.lib) #include #include /服务器使用的端口号为 5050 #define DEFAULT_PORT 5050 void main( ) intiPort=DEFAULT_PORT; WSADATAwsaData; SOCKETsListen, sAccept; /客户地址长度 intiLen; /发送的数据长度 intiSend; /要发送给客户的信息 charbuf =Hello!I am 梅发同; /服务器和客户的地址 struct sockaddr_inser, cli; printf

2、(-n); printf(Server waitingn); printf(-n); if(WSAStartup(MAKEWORD(2,2), return; /创建服务器端套接口 sListen=socket(AF_INET,SOCK_STREAM,0); if(sListen=INVALID_SOCKET) printf(socket( )Failed:%dn, WSAGetLastError( ); return; /以下建立服务器端地址 ser.sin_family=AF_INET; /htons( )函数把一个双字节主机字节顺序的数转换为网络字 ser.sin_port=htons(

3、iPort); /htonl( )函数把一个四字节主机字节顺序的数转换为网 /使用系统指定的 IP 地址 INADDR_ANY ser.sin_addr.s_addr=htonl(INADDR_ANY); if(bind(sListen,(LPSOCKADDR) return; /进入监听状态 if(listen(sListen,5)=SOCKET_ERROR) printf(listen( ) Failed:%dn,WSAGetLastError( ); return; /初始化客户地址长度参数 iLen=sizeof(cli); /进入一个无限循环,等待客户的连接请求 while(1) s

4、Accept=accept(sListen,(struct sockaddr*) if(sAccept=INVALID_SOCKET) printf(accept( ) Failed: %dn, WSAGetLastError( ); break; /输出客户 IP 地址和端口号 printf(Accepted client IP:%s,port:%dn, inet_ntoa(cli.sin_addr), ntohs(cli.sin_port); /给连接的客户发送信息 iSend=send(sAccept,buf,sizeof(buf),0); if(iSend=SOCKET_ERROR)

5、printf(send( ) Failed.:%dn, WSAGetLastError( ); break; elseif(iSend=0) break; else printf(send( ) byte:%dn,iSend); printf(-n); closesocket(sAccept); closesocket(sListen); WSACleanup( ); 客户机 #include #include #pragma comment(lib,Wsock32.lib) /服务器端口号为 5050 #define DEFAULT_PORT 5050 #define DATA_BUFFER

6、1024 void main(int argc,char *argv ) WSADATAwsaData; SOCKETsClient; intiPort= DEFAULT_PORT; /从服务器端接收的数据长度 intiLen; /接收数据的缓冲 charbufDATA_BUFFER; /服务器端地址 struct sockaddr_inser; /判断输入的参数是否正确 if(argc2) /提示在命令行中输入服务器 IP 地址 /printf(Usage:client 172.16.0.218n); printf(Usage:client server IP addressn); /get

7、char(); return; /接收数据的缓冲区初始化 memset(buf,0,sizeof(buf); if(WSAStartup(MAKEWORD(2,2), return; /填写要连接的服务器地址信息 ser.sin_family=AF_INET; ser.sin_port=htons(iPort); /inet_addr( )函数将命令行的点分 IP 地址转化为用二进制表 示的网络字节顺序的 IP 地址 ser.sin_addr.s_addr=inet_addr(argv1); /建立客户端流式套接口 sClient=socket(AF_INET,SOCK_STREAM,0);

8、if(sClient=INVALID_SOCKET) printf(socket( ) Failed:%dn, WSAGetLastError( ); return; /请求与服务器端建立 TCP 连接 if(connect(sClient,(struct sockaddr*) return; else /从服务器端接收数据 iLen=recv(sClient,buf,sizeof(buf),0); if(iLen=0) return; else if(iLen=SOCKET_ERROR) printf(recv( ) Failed:%dn, WSAGetLastError( ); return; printf(recv( ) data from server:%sn,buf); closesocket(sClient); WSACleanup( ); 结果

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号