ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:125.24KB ,
资源ID:22761017      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22761017.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(创建服务器端口的监听套接口文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

创建服务器端口的监听套接口文档格式.docx

1、注:指导教师成绩60%,答辩成绩40%,总成绩合成后按五级制记入。课程设计任务书20112012学年第一学期专业: 计算机科学与技术 学号: 姓名: 课程设计名称: 课程设计课程设计 设计题目: 创建服务器端口的监听套接口 完成期限:自 2012 年 1 月 2 日至 2012 年 1 月 13 日共 2 周设计依据、要求及主要内容(可另加附页):操作内容:创建服务器端口的监听套接口。从应用程序开发的角度出发,熟悉网络编程模式与编程接口,重点掌握基于TCP和UDP的套接字编程技术,最后了解TCP/IP协议的工作原理及关特性。操作环境:硬件包括PC机一台,要求联网。软件包括Windows XP操

2、作系统,Windows Socket,VC+6.0等等。指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日摘 要本程序以VC+作为软件开发环境,从应用程序开发的角度出发,运用TCP(Transmission Control Protocol)三次握手建立连接和连接释放等知识,并且基于TCP套接字编程技术,实现创建服务器端口的监听套接口,完成服务器对客户机的监听功能。关键词:TCP;监听套接口;VC+目 录1.课题描述 - 1 -2.问题分析和任务定义 - 2 -3.逻辑设计 - 3 -4.详细设计 - 4 -4.1服务器端 - 4 -4.2客户端 - 7 -5. 程序调试与测试结

3、果 - 9 -6.总结 - 10 -参考文献 - 11 -1.课题描述随着社会发展,Internent的迅速普及,客户服务器模式使用越来越多,尤其在通信上更是如此。本次课题是创建服务器端口的监听套接口,要求从应用程序开发的角度出发,基于TCP和UDP的套接字编程技术,创建服务器端口并对客户机进行监听。TCP协议是一种面向连接的、可靠的、基于字节流的运输协议,可以提供可靠地服务。本课设采用TCP连接技术,通过端口之间发送和接受消息,来实现客户机的所有动作服务器都能知道,完成服务器对客户机的监听功能。开发工具:VC 6.02.问题分析和任务定义这次课设是要求通过创建服务器端口的监听套接口来实现服务

4、器对客户机的监听。本课设采用TCP协议来实现这个功能。首先需要客户机和服务器进行连接,然后服务器才能对客户机进行监听。而服务器如何和客户机进行连接,这需要创建套接字,通过TCP面向连接的三次握手技术来实现,并且设置TCP协议中的一些参数。如果客户端没有和服务器连接成功,需要进一步分析是否重新连接或把连接失败结果显示出来。等连接完成之后,服务器和客户机都需要相互之间发送消息以表示连接成功,在这里面需要发送函数和接受函数来实现这个功能,最后是释放客户端和服务器的连接,可以通过关闭套接字终止对套接字库的使用来实现。3.逻辑设计创建服务器端口的监听套接口程序由两大部分组成。一个是服务器端,一个是客户机

5、端。在服务器端,需要进行八个步骤。分别是:1. 加载套接字库2. 创建套接字(socket)3. 将套接字绑定到一个本地地址和端口上(bind)4. 将套接字设为监听模式,准备接受客户请求(listen)5. 等待客户请求的到来,请求连接完成后返回一个新的套接字(accept)6. 用返回的套接字和客户端进行通信(send/recv)7. 返回,等待另一个客户请求8. 关闭套接字(closesocket)客户端程序需要五个步骤:1 加载套接字库2 创建套接字(socket)3 向服务器发送连接请求(connect)4 和服务器端进行通信(send/receive)5 关闭套接字(closeso

6、cket) 4.详细设计分为两大模块:4.1服务器端void main() WORD wVersionRequested; /加载套接字(winsock)库 WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); /版本号为1.1 err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) return; if ( LOBYTE( wsaData.wVersion ) != 1 | HIBYTE( wsaData.wVersion ) != 1 ) WS

7、ACleanup( ); /创建套接字 SOCKET sockServer=socket(AF_INET,SOCK_STREAM,0); /SOCK_STREAM参数设置为TCP连接 SOCKADDR_IN addrServer; /设置服务器端套接字的相关属性 addrServer.sin_addr.S_un.S_addr=htonl(INADDR_ANY); /设置IP addrServer.sin_family=AF_INET; addrServer.sin_port=htons(1234); /设置端口号 /将套接字绑定到本地地址和指定端口上 bind(sockServer,(SOCK

8、ADDR*)&addrServer,sizeof(SOCKADDR) /将套接字设置为监听模式,并将最大请求连接数设置成5,超过此数的请求全部作废 listen(sockServer,5); SOCKADDR_IN addrClient; /用来接收客户端的设置,包括IP和端口 int len=sizeof(SOCKADDR); while(1) /不断监听 /得到创建连接后的一个新的套接字,用来和客户端进行沟通,原套接字继续监听客户的连接请求 SOCKET sockConn=accept(sockServer,(SOCKADDR*)&addrClient,&len); if(sockConn

9、!=INVALID_SOCKET) /创建成功 char sendInfo100; /inet_ntoa将结构转换为十进制的IP地址字符串 sprintf(sendInfo,welcome to %s this test!,inet_ntoa(addrClient.sin_addr); /成功建立连接后向客户端发送数据,结果将显示在客户端上 send(sockConn,sendInfo,strlen(sendInfo)+1,0); /从客户端接收数据,结果显示在服务器上 char recvInfo100; for(int i=1;i=2;i+) recv(sockConn,recvInfo,1

10、00,0); printf(%sn,recvInfo); /将本次建立连接中得到套接字关闭 closesocket(sockConn); else int errCode=WSAGetLastError();the errcode is:%dn,errCode); /如果本程序不是死循环,那么在此处还应添加以下代码 closesocket(sockServer); /对一直处于监听状态的套接字进行关闭 WSACleanup(); /终止对winsocket库的使用图 4.1服务器端流程图 图4.2 客户端的流程图4.2客户端 /加载套接字库 char massage100; /版本好为1.1=

11、 1 | HIBYTE( wsaData.wVersion ) ! SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0); /服务器地址结构 addrServer.sin_addr.S_un.S_addr=inet_addr(127.0.0.1); /服务器地址 /服务器端口号 /与服务器端建立连接,进行通信 int connReult=connect(sockClient,(SOCKADDR*)&addrServer,sizeof(SOCKADDR); if(connReult!=WSAEADDRNOTAVAIL) /访问成功 /成功建立连接后向服务

12、器端发送数据,结果将显示在服务器端上 char recvInfo100; printf(请输入要求:n gets(massage); send(sockClient,massage,strlen(massage)+1,0); recv(sockClient,recvInfo,100,0); send(sockClient,this is zhangsan!,strlen()+1,0); /接收来自服务器端发送来的信息%s n%d/n closesocket(sockClient);5. 程序调试与测试结果首先开启服务器端,然后再开启客户机端。这面是在VC+6.0环境下运行服务器第一次监听的结果

13、如图5.1所示: 图5.1 服务器第一次监听结果客户端口的运行结果如图5.2所示: 图5.2 客户端界面服务器端第二次监听结果如图5.3所示: 图5.3 服务器第二次监听结果客户端的运行结果如图5.4所示: 图5.4 客户端的界面6.总结在这次课程设计中,我清楚的认识理论到到实践的重要性,经过实际的动手操作不仅提高了我的动手能力还提高了我把理论转化成实践的能力。在这两周的编程中虽说有很多喜悦的成分,但兴奋过后才发现在周时间内实现预期的效果并不是自己想象的那样简单,非常的迷茫,幸亏身边的同学的帮助,老师的谆谆教导,自己的潜心研究让我度过了这个艰难的时期,顺利实现自己的预期效果。这让我明白了无论做

14、什么事都必须有恒心和毅力,然后加上正确的方法这样我一定能实现自己的目标。随着社会发展,Internent的迅速普及,以及飞速发展,人们对实时通信的要求越来越迫切,需求日益增加,网络聊天已经成为了一大时尚,不少人都有这样的经历。在对于服务器端口和客户端端口上,学会了很多知识,并且把自己再TCP和UDP的知识再次得到了巩固。现在回顾两个星期以前,当一个星期前的现在,当看到老师布置给我们的这些题目时,我们都蒙了,这么难的题目我们怎么可能会编出来啊,我们都表示不满,抗议,可是一切都是徒劳,我们只能尽我们自己最大的努力把程序给写出来 ,回想这两周做课设的过程,从构思结构到想具体的程序,虽然很辛苦,但还是做了下了,在这里面收获了许多,也为今后的毕业论文打下基础。参考文献1 萧秋水,文娟.网络编程之vc篇.北京.清华出版社.20012 方敏,张彤.网络应用程序设计.安.安电子科技大学出版社.0053 黄超.windows下的网络编程.北京.人民邮电出版社.2003

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1