欢迎来到天天文库
浏览记录
ID:37711377
大小:739.91 KB
页数:27页
时间:2019-05-29
《Linux程序设计上机四(网络编程)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机学院网络13卓越班郑仙玉学号:201300824401上机四:Linux网络编程一上机目标:(1)掌握“TCP套接字”编程(2)掌握“UDP套接字”编程上机实例:(1)编写TCP客户端和服务器端程序服务器端:能够处理多并发(每个子进程处理一个客户端连接;),实现信息回射(echo)客户端:实现信息发送和显示实验步骤:1)先建立文件夹TCP,并在TCP文件夹中建立client文件夹和service文件夹:图4-1、TCP文件中的保含文件2)在service文件夹内建立service.cpp和makefile文件:图4-2、列出service文件夹中的文件3)在clie
2、nt文件夹内建立client.cpp和Makefile文件:27计算机学院网络13卓越班郑仙玉学号:201300824401图4-3、列出client文件夹中的文件4)service文件夹中的makefile文件内容:图4-4、service的makefile内容5)client文件夹中的Makefile文件内容:图4-5、client的Makefile内容6)在终端中service的运行过程:图4-6、service可执行文件的生成7)在终端中client的运行过程:27计算机学院网络13卓越班郑仙玉学号:201300824401图4-7、client可执行文件的生成4
3、)客户机和服务器建立连接截图如下:图4-8、运行service图4-9、运行client5)客户机向服务器发送信息:图4-10、客户机发送消息图4-11、服务器接收到消息,并回应6)代码服务器端代码:#include#include#include#include#include#include#include#include27计算机学院网络13卓越班郑仙玉学号:201300824401#inc
4、lude#include#defineSERV_PORT8888#defineSERV_IP"127.0.0.1"//本地回环接口#defineLIST20//服务器最大接受连接#defineMAX_FD10//FD_SET支持描述符数量intmain(void){intsockfd;interr;inti;intconnfd;intfd_all[MAX_FD];//保存所有描述符,用于select调用后,判断哪个可读//下面两个备份原因是select调用后,会发生变化,再次调用select前,需要重新赋值fd_set
5、fd_read;//FD_SET数据备份fd_setfd_select;//用于selectstructtimevaltimeout;//超时时间备份structtimevaltimeout_select;//用于selectstructsockaddr_inserv_addr;//服务器地址structsockaddr_incli_addr;//客户端地址socklen_tserv_len;socklen_tcli_len;//超时时间设置timeout.tv_sec=10;timeout.tv_usec=0;sockfd=socket(AF_INET,SOCK_STR
6、EAM,0);if(sockfd<0){perror("failtosocket");exit(1);}memset(&serv_addr,0,sizeof(serv_addr));memset(&cli_addr,0,sizeof(cli_addr));serv_addr.sin_family=AF_INET;serv_addr.sin_port=htons(SERV_PORT);serv_addr.sin_addr.s_addr=inet_addr(SERV_IP);serv_len=sizeof(serv_addr);err=bind(sockfd,(structs
7、ockaddr*)&serv_addr,serv_len);if(err<0){perror("failtobind");exit(1);}err=listen(sockfd,LIST);27计算机学院网络13卓越班郑仙玉学号:201300824401if(err<0){perror("failtolisten");exit(1);}//初始化fd_all数组memset(&fd_all,-1,sizeof(fd_all));fd_all[0]=sockfd;//第一个为监听套接字FD_ZERO(&fd_read);FD_SE
此文档下载收益归作者所有