- 96
- 0
- 约8.24千字
- 约 15页
- 2018-10-09 发布于重庆
- 举报
TCPIP课程设计---基于套接字的客户机服务器程序设计
成 绩
评 阅 人
评阅日期
TCP/IP课程设计
设计题目:基于套接字的客户机/服务器程序设计
班 级:
学 号:
姓 名:
指导老师:
年 月 日
基于套接字的客户机/服务器程序设计
一.设计目的:
理解客户机/服务器模型的工作原理;
掌握套接字的概念;
掌握基于套接字的面向连接和无连接客户机/服务器程序的设计原理和相关的WinSock API函数;
掌握基于TCP和UDP的程序设计方法。
二.设计内容:
基于TCP的应用编程:编写一个Client/Server程序对,服务器程序负责接收客户机进程的连接请求,并在服务器进程与客户机进程之间建立通信连接,然后接收客户机进程的传送数据并将其显示在服务器端,同时将欢迎信息发送给客户机进程,最后关闭该客户机进程的连接;客户机进程首先提出对指定服务器的连接请求,建立连接后向服务器进程发送已经建立连接的数据信息,同时接收服务器进程发送过来的数据并显示在客户端。采用WinSock API实现代码。
基于UDP的应用编程:实现一个基于UDP的客户机/服务器程序,通过设定不同的命令行参数来确定应用进程的不同角色,即充当客户机进程还是服务器进程。当两个进程运行后,彼此之间可以轮流发送消息,对方接收后显示出来。
三.原理分析:
(一)套接字的概念:
套接字(Socket) 1. Socket的出现,使得程序员可以很方便的访问TCP/IP,从而开发各种网络应用的程序 2. 套接字存在于通信区域中,通信区域也叫地址族,他是一个抽象的概念,主要用于通过套接字通信的进程的共有特性综合在一起。套接字通常只与同一个区域的套接字交换数据。 套接字的类型 1. 流式套接字(SOCK_STREAM) 提供面向连接的,可靠的数据传输服务,数据无差错,无重复的发送,且按发送的顺序接收,基于TCP协议 ;2. 数据保式套接字(SOCK_DGRAM) 提供无连接的服务,数据包以独立包形式发送,不提供无错误的保证,数据可能丢失或重复,且接收顺序混乱,基于UDP协议。
(二)WinSock应用程序接口:
WinSock是一个基于套接字模型的API(应用程序接口),在Microsoft Windows操作系统类中使用。它在Berkekley接口函数的基础上,还增加了基于消息驱动机制的Windows扩展函数。其中WinSock 1.1只支持TCP/IP网络,WinSock2.0则增加了对更多协议的支持。WinSock包括以下3类的函数:
1.WinSock API包含的Berkeley Socket函数。这类函数分两部分,其一是用于网络I/P的函数;其二是不涉及网络I/O,在本地端完成的函数。
2.检索有关域名,通信服务和协议等Internet信息的数据库函数。
3.Berkekley Socket API的Windows转用的扩展函数。
(三)工作模型
网络应用程序一般是以客户机/服务器的模型的方式工作的。而因特网便是客户机/服务器模型的一个典型应用。在这种工作方式中,一个服务器程序通常事先启动,并在一个熟知端口侦听对服务器的请求,如FTP服务器,Web服务器等。当客户机应用程序需要某种服务时,需向提供这种服务的服务器发出请求,服务器在接收到请求后,向客户机发出相应请求信息。这样客户机应用程序和服务器程序之间便建立了通信连接,此后可以进行数据通信。通信任务完成后需要关闭它们之间的通信连接。基于TCP(面向连接)和基于UDP(面向非连接)应用程序的工作流程如下所示:
通信连接关闭通信连接建立服务器响应请求客户程序请求服务器启动监听
通信连接关闭
通信连接建立
服务器响应请求
客户程序请求
服务器启动监听
数据通信
数据通信
四.总体设计:
(一)基于TCP(面向连接)的Socket编程:服务器端顺序: 1. 加载套接字库 2. 创建套接字(socket) 3. 将套接字绑定到一个本地地址和端口上(bind) 4. 将套接字设为监听模式,准备接收客户请求(listen) 5. 等待客户请求的到来;当请求带来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) 6. 用返回的套接字和客户端进行通信(send/recv) 7. 返回,等待另一个客户请求 8. 关闭套接字(closesocket) 客户端程序: 1. 加载套接字库 2. 创建套接字(socket) 3. 向服务器发送连接请求(connect) 4. 和服务器端进行通信(send/receive) 5. 关闭套接字(closesocket) (二)基于UDP(面向无连接)的socket编程 :服务器端(接收端)程序: 1. 加载套接字库 2. 创建套接字(socke
您可能关注的文档
- Neural Networks Nonlinear Optimization for Constrained 神经网络的非线性优化的约束.doc
- NC供应链采购管理操作手册.docx
- ng设备管理工程师需要掌握的知识体系gm.doc
- NiO还原氧化石墨烯的溶剂热合成以及作为高循环稳定性超级电容器电极材料的性能表.docx
- Nkv城乡用地评定标准条文说明.doc
- nmPLC课程设计课题三层电梯模型 PLC 控制系统设计与调试gh.doc
- NOSA五星安健环管理系统企业标准及基本要求.doc
- Normal制作原理及制作注意事项.doc
- NPTPTGRC螺纹的区别.doc.doc
- NTP网络授时系统设计与实现客户端时钟同步软件设计与实现.doc
- (正式版)DB51∕T 1867-2014 《袋栽黑木耳生产技术规程》.docx
- (正式版)DB51∕T 2413-2023 《油橄榄密植丰产栽培技术规程》.docx
- (正式版)DB51∕T 2436-2017 《川菜东坡一品肉烹饪工艺技术规范》.docx
- (正式版)DB51∕T 2396-2017 《农村电子商务服务站(点)服务与管理规范》.docx
- (正式版)DB51∕T 2419-2017 《桢楠扦插育苗技术规程》.docx
- CN105145773B 一种无花果曲奇饼干及其制作方法 (江苏农林职业技术学院).docx
- CN105203825A 微测量电极的制作方法和热电势的测量方法及相关装置 (国家纳米科学中心).docx
- CN105137533B 一种啁啾光纤光栅及其制作方法 (南京航空航天大学).docx
- (正式版)DB51∕T 2453-2018 《巴山新居公共管理指南》.docx
- (正式版)DB51∕T 1892-2014 《川西北地区沙化土地治理技术规程》.docx
最近下载
- 海南大学《线性代数A1》2022-2023学年第二学期期末试卷B卷及答案.pdf VIP
- 初中英语自然拼读法与词汇记忆策略融合教学实践探究教学研究课题报告.docx
- 人教版新版小学二年级下册语文生字表课课贴【可打印】.pdf VIP
- 单招笔试语数真题及答案2025.doc VIP
- 《计算机应用基础(第3版)》高等院校计算机基础课程全套教学课件.pptx
- 鱼类的外部形态.ppt VIP
- 邮轮旅游安全天津海运职业刘艳邮轮运营管理84课件.ppt VIP
- 2025-2026学年小学综合实践活动沪科黔科版六年级下册-沪科黔科版教学设计合集.docx
- 【北师大版】五年级数学上册《分数加减法》单元测试卷.doc VIP
- 建筑施工安全管理培训.pptx VIP
原创力文档

文档评论(0)