linux课程设计报告

linux课程设计报告

ID:26219646

大小:402.00 KB

页数:9页

时间:2018-11-25

linux课程设计报告_第1页
linux课程设计报告_第2页
linux课程设计报告_第3页
linux课程设计报告_第4页
linux课程设计报告_第5页
资源描述:

《linux课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Linux课程设计报告班级:电子信息科学与技术一班_9一、设计目标.管理员端:1.基本信息录入2.删除信息3.查找信息4.修改信息5.信息排序学生端:1.查看信息2.修改信息二、原理分析及实现过程Socket通信原理:操作系统的进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。不同的进程运行在各自不同的内存空间中,进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通过进程间通信来完成。本机进程之间通信可以通过管道、命名管道、信号等实现通信,网间进程通信就要通过Socket进行通信。网间进程通信时通过端口号来唯一标识主机的进程。端口号被分为三类,一类是0~1023范围内的端口

2、,被称为熟知端口,这些端口号已被分配给了因特网上的著名应用程序,第二类端口被称为登记端口,范围是1024~49151,为没有熟知端口号的应用程序使用的。第三类是客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。9网络应用进程间通信普遍采用客户/服务器交互模式,该模式通常简记为C/S模式。在该模式中,通信双方中发起通信的一方被称为客户端,被动接受通信请求的一方被称为服务器。服务器方必须先启动,并时刻监听是否有客户端的请求到达。服务器通过多线程技术实现一对多通信。本系统是基于TCP/IP协议栈使用C语言来实现进程间的通信。进程通信过程:服务器端:1.先用socket函

3、数来建立一个套接字,用这个套接字完成通信的监听。2.用bind函数来绑定一个端口号和IP地址。3.调用listen函数,使服务器的这个端口和IP处于监听状态,等待客户机的连接。4.用accept函数来接受远程计算机的连接,建立起与客户机之间的通信。主要代码解析:#definePORT4000//定义端口号为4000,使用宏定义方便以后的修改intmain(intargc,char**argv){{intsockfd=-1,ret=-1;structsockaddr_insockaddr;if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){//使用socke

4、t()建立套接字,并返回套接字号perror("createsocketfailed");return-1;}memset(&sockaddr,0,sizeof(sockaddr));sockaddr.sin_family=AF_INET;//地址信息sockaddr.sin_port=htons((uint16_t)PORT);sockaddr.sin_addr.s_addr=INADDR_ANY;if((ret=bind(sockfd,(conststructsockaddr*)&sockaddr,//套接字和本地地址绑定sizeof(sockaddr)))<0){perror("bind

5、failed");return-1;}if(listen(sockfd,MAX_UNRESOLVE_LINK_NUMBER)<0){//通知服务器准备接受连接perror("listenfailed");return-1;}clntfd=accept(sockfd,(structsockaddr*)&clntaddr,&len);//接受连接,创建子进程,用于处理客户端的请求}客户端:1.用socket函数建立一个套接字,设定远程IP和端口。2.调用connect函数连接远程计算机指定的端口。3.建立连接以后,客户机用send函数通过socket发送数据。也可以用recv函数从socket读取

6、服务器发送来的数据。服务器同样也可以用recv函数和send函数来收发数据。主要代码解析:9#definePORT4000intmain(){intsockfd=-1,ret=-1;structsockaddr_inclntaddr;sockfd=socket(AF_INET,SOCK_STREAM,0);//创建套接字if(sockfd<0){perror("createfailed");return-1;}memset(&clntaddr,0,sizeof(clntaddr));clntaddr.sin_family=AF_INET;//地址信息clntaddr.sin_port=hton

7、s((uint16_t)PORT);inet_pton(AF_INET,"127.0.0.1",&clntaddr.sin_addr.s_addr);ret=connect(sockfd,(conststructsockaddr*)&clntaddr,//将套接字与服务器端进行连接sizeof(clntaddr));if(ret<0){perror("connectfailed");}write(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。