应用层系统服务分析实验报告.doc

应用层系统服务分析实验报告.doc

ID:61480611

大小:83.50 KB

页数:6页

时间:2021-02-03

应用层系统服务分析实验报告.doc_第1页
应用层系统服务分析实验报告.doc_第2页
应用层系统服务分析实验报告.doc_第3页
应用层系统服务分析实验报告.doc_第4页
应用层系统服务分析实验报告.doc_第5页
资源描述:

《应用层系统服务分析实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、综合性实验项目简介学院名称(公章):软件学院2014-2015学年第一学期填表日期:实验课程名称TCP/IP协议分析实验项目名称应用层系统服务分析实验实验项目性质1、综合性√2、设计性主讲教师开课年级2012开课专业12网络工程实验地点开课日期2014年9月28日至2014年12月28日开课时间第14周星期二3-4节实验项目简介:实验目的(1)掌握单用户客户端与服务器的连接和数据处理;(2)理解并掌握Socket模型(3)掌握Linux平台网络数据的传送方法。实验内容(1)编写基于流套接字的TCP

2、/IP通信程序;(2)编写基于流套接字的网络通信原型系统;(3)要求至少综合使用到实验目的中提到的三条或三条以上内容。实验条件学院提供网络实验室,1台/学生微型计算机,安装有协议分析综合教学系统。实验原理使用TCP套接字编程可以基于TCP/IP协议面向连接的协议,它分为客户端和服务器端,主要的实现过程为:服务器端:(1)使用socket()函数创建套接字。(2)将创建的套接字绑定到指定的地址结构。(3)Listen()函数设置套接字为监听状态,使服务器进入被打开状态。(4)接受客户端的请求,建立连

3、接(5)接受,应答客户端的数据请求(6)终止连接客户端:(1)使用socket()函数创建套接字。(2)调用connect()函数建立一个与TCP服务器的连接(3)发送数据请求,接受服务器的数据应答(4)终止连接流程图如下:serversocket()bind()listen()accept()client阻塞直到接受客户socket编请求os自动调用bind()函三次握手connect()数解析出IP随机分配一个闲read()数据请求write()置的编口绑定处理请求write()数据响应rea

4、d()关闭连接closeclose()服务器端代码:server.c#include#include#include#include#include#include#include#include#include#include#definePORT1234#defineB

5、ACKLOG2#defineMAXCHARSIZE1000voidprocess_client(intconnetfd,structsockaddr_inclient);intmain(void){intlistenfd,connectfd;structsockaddr_inserver,client;intsin_size;intopt=SO_REUSEADDR;pid_tpid;if((listenfd=socket(AF_INET,SOCK_STREAM,0))==-1){perror("C

6、reatesocketfailed.");exit(-1);}setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));bzero(&server,sizeof(server));server.sin_family=AF_INET;server.sin_port=htons(PORT);server.sin_addr.s_addr=htonl(INADDR_ANY);if(bind(listenfd,(structsockaddr*

7、)&server,sizeof(structsockaddr))==-1){perror("Binderror.");exit(-1);}if(listen(listenfd,BACKLOG)==-1){perror("listenerror.");exit(-1);}sin_size=sizeof(structsockaddr_in);while(1){if((connectfd=accept(listenfd,(structsockaddr*)&client,&sin_size))==-1){

8、perror("accepterror.");exit(-1);}if((pid=fork())>0){close(connectfd);continue;}elseif(pid==0){close(listenfd);process_client(connectfd,client);exit(1);}else{perror("Forkerror.");exit(0);}}close(listenfd);}voidprocess_client(intconnectfd,stru

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

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

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