tcp_ip课程设计---基于套接字的客户机服务器程序设计

tcp_ip课程设计---基于套接字的客户机服务器程序设计

ID:9410149

大小:172.00 KB

页数:16页

时间:2018-04-30

tcp_ip课程设计---基于套接字的客户机服务器程序设计_第1页
tcp_ip课程设计---基于套接字的客户机服务器程序设计_第2页
tcp_ip课程设计---基于套接字的客户机服务器程序设计_第3页
tcp_ip课程设计---基于套接字的客户机服务器程序设计_第4页
tcp_ip课程设计---基于套接字的客户机服务器程序设计_第5页
资源描述:

《tcp_ip课程设计---基于套接字的客户机服务器程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、成绩评阅人评阅日期TCP/IP课程设计设计题目:基于套接字的客户机/服务器程序设计班级:学号:姓名:指导老师:年月日基于套接字的客户机/服务器程序设计一.设计目的:(1)理解客户机/服务器模型的工作原理;(2)掌握套接字的概念;(3)掌握基于套接字的面向连接和无连接客户机/服务器程序的设计原理和相关的WinSockAPI函数;(4)掌握基于TCP和UDP的程序设计方法。二.设计内容:(一)基于TCP的应用编程:编写一个Client/Server程序对,服务器程序负责接收客户机进程的连接请求,并在服务器进程与客户机进程之间建立通信连接,然后接收客户机进程的传送数据并将其

2、显示在服务器端,同时将欢迎信息发送给客户机进程,最后关闭该客户机进程的连接;客户机进程首先提出对指定服务器的连接请求,建立连接后向服务器进程发送已经建立连接的数据信息,同时接收服务器进程发送过来的数据并显示在客户端。采用WinSockAPI实现代码。(二)基于UDP的应用编程:实现一个基于UDP的客户机/服务器程序,通过设定不同的命令行参数来确定应用进程的不同角色,即充当客户机进程还是服务器进程。当两个进程运行后,彼此之间可以轮流发送消息,对方接收后显示出来。三.原理分析:(一)套接字的概念:套接字(Socket)1.Socket的出现,使得程序员可以很方便的访问TC

3、P/IP,从而开发各种网络应用的程序2.套接字存在于通信区域中,通信区域也叫地址族,他是一个抽象的概念,主要用于通过套接字通信的进程的共有特性综合在一起。套接字通常只与同一个区域的套接字交换数据。套接字的类型1.流式套接字(SOCK_STREAM)提供面向连接的,可靠的数据传输服务,数据无差错,无重复的发送,且按发送的顺序接收,基于TCP协议;2.数据保式套接字(SOCK_DGRAM)提供无连接的服务,数据包以独立包形式发送,不提供无错误的保证,数据可能丢失或重复,且接收顺序混乱,基于UDP协议。(二)WinSock应用程序接口:WinSock是一个基于套接字模型的A

4、PI(应用程序接口),在MicrosoftWindows操作系统类中使用。它在Berkekley接口函数的基础上,还增加了基于消息驱动机制的Windows扩展函数。其中WinSock1.1只支持TCP/IP网络,WinSock2.0则增加了对更多协议的支持。WinSock包括以下3类的函数:1.WinSockAPI包含的BerkeleySocket函数。这类函数分两部分,其一是用于网络I/P的函数;其二是不涉及网络I/O,在本地端完成的函数。2.检索有关域名,通信服务和协议等Internet信息的数据库函数。3.BerkekleySocketAPI的Windows转用

5、的扩展函数。(三)工作模型网络应用程序一般是以客户机/服务器的模型的方式工作的。而因特网便是客户机/服务器模型的一个典型应用。在这种工作方式中,一个服务器程序通常事先启动,并在一个熟知端口侦听对服务器的请求,如FTP服务器,Web服务器等。当客户机应用程序需要某种服务时,需向提供这种服务的服务器发出请求,服务器在接收到请求后,向客户机发出相应请求信息。这样客户机应用程序和服务器程序之间便建立了通信连接,此后可以进行数据通信。通信任务完成后需要关闭它们之间的通信连接。基于TCP(面向连接)和基于UDP(面向非连接)应用程序的工作流程如下所示:通信连接关闭通信连接建立服务

6、器响应请求客户程序请求服务器启动监听数据通信四.总体设计:(一)基于TCP(面向连接)的Socket编程:服务器端顺序:1.加载套接字库2.创建套接字(socket)3.将套接字绑定到一个本地地址和端口上(bind)4.将套接字设为监听模式,准备接收客户请求(listen)5.等待客户请求的到来;当请求带来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)6.用返回的套接字和客户端进行通信(send/recv)7.返回,等待另一个客户请求8.关闭套接字(closesocket)客户端程序:1.加载套接字库2.创建套接字(socket)3.向服务器发送

7、连接请求(connect)4.和服务器端进行通信(send/receive)5.关闭套接字(closesocket)(二)基于UDP(面向无连接)的socket编程:服务器端(接收端)程序:1.加载套接字库2.创建套接字(socket)3.将套接字绑定到一个本地地址和端口上(bind)4.等待接收数据(recvfrom)5.关闭套接字(closesocket)客户端(发送端)程序1.加载套接字库2.创建套接字(socket)3.向服务器发送数据(sendto)4.关闭套接字(closesocket)五.详细设计:(一).基于TCP的服务器/客户机程序

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

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

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