- 8
- 0
- 约 23页
- 2016-10-26 发布于广东
- 举报
8.1 TCP网络程序设计模型 8.1.1 服务器端工作流程 基于C/S结构的程序在工作时,服务器端的应用程序应该首先启动,以等待客户的服务请求。其具体工作流程可以分为以下八个步骤: 第一步:使用WSAStartup()函数检查系统协议栈的安装情况。只有在协议栈正确安装的情况下,才可以执行以下的各步骤。常用的调用格式有如下两种: WSAStartup(0x0202,wsaData); WSAStartup(MAKEWORD(2,2),wsaData); 注意:这里所使用的Winsock为2.2版,也可以使用其它版本的Winsock。 第二步:使用socket()或WSASocket()函数创建服务器端通信的套接口。如果套接口创建不成功,也不能执行以下的各操作,并且要调用WSACleanup()函数,结束Windows Sockets API的使用。这一步调用过程确定了相关五元组的协议。常用的调用格式有如下几种: 8.1 TCP网络程序设计模型 8.1.1 服务器端工作流程 SOCKET serverSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); SOCKET serverSocket=socket(AF_INET,SOCK_STREAM,0); SOCKET serverSocket=WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP, NULL,0,WSA_FLAG_OVERLAPPED); SOCKET serverSocket=WSASocket(AF_INET,SOCK_STREAM,0, NULL,0,WSA_FLAG_OVERLAPPED); 注意:调用不成功时返回INVALID_SOCKET。 8.1 TCP网络程序设计模型 8.1.1 服务器端工作流程 第三步:使用bind()函数将创建的套接口与服务器地址绑定。它确定了相关五元组中的本地IP地址和端口号。常用调用格式: bind(serverSocket,(const struct sockaddr*)localaddr,sizeof(sockaddr)); bind(serverSocket,(SOCKADDR*)localaddr,sizeof(sockaddr)); bind(serverSocket,(sockaddr*)localaddr,sizeof(sockaddr)); bind(serverSocket,(LPSOCKADDR)localaddr,sizeof(sockaddr)); 注意:本机地址有多种表示方法,它们是等价的。 第四步:使用listen()函数使服务器套接口做好接收连接请求的准备。该函数的调用格式如下: listen(serverSocket,queuelen); 注意:第二个参数是请求队列的长度,用以限制排队请求的客户数,它与协议的实现有关,一般给queuelen赋值为5。 8.1 TCP网络程序设计模型 8.1.1 服务器端工作流程 第五步:使用accept()或WSAAccept()函数接收来自客户端由connect()发出的连接请求。常用格式: SOCKET Newsock=accept(serverSocket,(struct sockaddr*)clientaddr,clientaddr_len); 该函数的参数中,由参数clientaddr返回客户端协议、IP地址和端口信息,至此一个通信所需的五元组已建立。 第六步:连接建立连接后,使用send()或WSASend()函数发送数据,或使用recv()或WSARecv()函数接收数据。具体使用实例见下节的实例程序。 第七步:使用closesocket()函数关闭套接口。它的使用方法很简单: closesocket(serverSocket); 8.1 TCP网络程序设计模型 8.1.1 服务器端工作流程 第八步:最后调用WSACleanup()函数,结束Windows Sockets API的使用。 它是一个无参函数,在程序中直接调用即可: WSACleanup(); 至此,服务器的工作过程结束。当然实际的服务器程序是比较复杂的,这里只是对它的基本流程进行了说明。 8.1 TCP网络程序设计模型 8.1.2 客户端工作流程 客户端相对服务器端来说,其工作过程较为简单。客户端应用程序的工作流程如下: ? 第一步:使用WSAStartup()函数检查系统协议栈的安装情况。其调用格式与服务器端调用格式类似: WSAStartup(0x0202,wsaData); WSAStartup(MAKEWORD(2,2),wsaData); ? 第二步:使用socket()或W
您可能关注的文档
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第9章数据库的设计.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第10章T SQL编程.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第11章数据库事务.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第12章索引和视图.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第13章存储过程.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第14章触发器.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第15章应用程序访问SQL Server.ppt
- 新SQL Server 2008数据库开发经典案例教程 电子教案&习题解答等 吕玉桂 电子教案 第16章数据库维护.ppt
- 新SQL Server 2008数据库项目教程 教学课件 韩永印 王勇 情境1、数据库的规划 任务1、搭建数据库环境.ppt
- 新SQL Server 2008数据库项目教程 教学课件 韩永印 王勇 情境2、数据库的实施 任务1、构建与管理数据库.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- LY_T 1955-2022 林地保护利用规划林地落界技术规程.docx
- 2025年独角兽企业:宁德时代组织结构及部门职责.pdf VIP
- 2026年党支部在学习贯彻党的创新理论等“对照五个方面”存在的问题及整改措施4280字范文.docx VIP
- 汉英翻译技巧课件钟书能 ISBN9787566304049 PPT11.ppt VIP
- 西华大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 2026年责任制整体护理工作计划范文(2篇).docx VIP
- 2026年党支部在学习贯彻党的创新理论、加强党性锤炼等“对照五个方面”存在的问题及整改措施4030字范文.docx VIP
- 《药品上市后评价管理规程》.docx VIP
- 学校1530安全教育记录(2026年春季期).docx
- 《边教书边成长》读书分享课件.pptx VIP
原创力文档

文档评论(0)