- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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协议
四.总体设计:
(一)基于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. 创建套接字(socket) 3. 将套接字绑定到一个本地地址和端口上(bind) 4. 等待接收数据(recvfrom) 5. 关闭套接字(closesocket) 客户端(发送端)程序 1. 加载套接字库 2. 创建套接字(socket) 3. 向服务器发送数据(sendto) 4. 关闭套接字(closesocket)server.cpp:
#includewinsock2.h
#includeiostream
using namespace std;
#include string.h
void main()
{
//加载套接字(winsock)库
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 ); //版本号为2.2
err = WSAStartup( wVersionRequested, wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
WSACleanup( );
return;
}
//创建套接字
SOCKET sockServer=socket(AF_INET,SOCK_STREAM,0)
您可能关注的文档
- PBL教学法实施过程中四个关键环节 长春中医药大学.ppt
- MRI技术在产前诊断中应用湖南省儿童医院放射科.ppt
- PC机与MCS51单片机串口通信.docx
- PDCA循环管理在工程管理中应用本科.doc
- PDCA在公司管理中应用研究.doc
- PCT互动课程组织与实施学员手册.ppt
- PBL 指導者作用中医药教学培训班.ppt
- Photoprocesses Behavior Of Some Bis Oxadiazole Compoundsphotoprocesses行为一些双恶二唑化合物.doc
- Physical Fitness Requirements in Law Enforcement Agencies在执法机构身体素质要求.doc
- p2p汽车租赁系统设计与实现本科.doc
- 期末全真测试卷(教科版)六年级科学下册.docx
- Unit3Healthyorunhealthy?(课件)沪教牛津版(深圳用)英语六年级上册.pptx
- 农业现代化与农村地理(1).pptx
- 农业工程与农业机械技术教学总结.pptx
- Module9Unit3Languageinuse课件英语八年级下册.pptx
- 安徽省黄山市八年级下学期期末考试英语试题(原卷版).docx
- xx关于劳动节的演讲稿字篇范文.pptx
- Module4写作能力提升练英语八年级下册(1).pptx
- Unit1NatureinthebalanceIntegratedskills课件高中英语译林版.pptx
- Unit2WildlifeProtection单词记忆课件高中英语人教版.pptx
文档评论(0)