基于TcpIP协议的网络通讯设计服务器端Word下载.docx
《基于TcpIP协议的网络通讯设计服务器端Word下载.docx》由会员分享,可在线阅读,更多相关《基于TcpIP协议的网络通讯设计服务器端Word下载.docx(52页珍藏版)》请在冰豆网上搜索。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;
它既有简单易学的特性,为广大人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;
它的棋文化源渊流长,具有东方的神秘和西方的直观;
既有“场”的概念,亦有“点”的连接。
它是中西文化的交流点,是古今哲理的结晶。
1.2五子棋的历史与现状
20世纪90年代,五子棋在我国民间迅速普及,爱好者群体不断扩大,水平不断提高,地区间的交流活动逐步增多,一些五子棋组织应运而生,许多地区举办了五子棋比赛活动。
五子棋作为一个智力运动项目,它的最大价值就是为社会大多数民众休闲娱乐服务,在构建和谐社会中发挥应有的作用。
随着网络时代的到来,网络五子棋游戏也随之兴起,它凭借健康、方便、互动性强、益智等诸多优点,成为一些现代人的休闲娱乐方式。
1.3五子棋游戏开发意义
进入二十一世纪,电脑和网络越来越普及,五子棋这个传统娱乐项目被网络数字化也是必然趋势。
由于电脑的人工智能,越来越多的人能够和电脑或者联机进行对战,感受高手的思维方式和棋艺,使自己的棋术越来越精湛。
由于网络的普及,高手可以通过游戏的网络对战系统上网和真人进行对弈,让人们在工作闲暇之余能够享受游戏的快乐,而且五子棋作为一款传统游戏,它是老少皆宜,潜在玩家很多,其市场前景非常广阔。
在当今电脑网络密布的世界当中,一个简单高效的局域网游戏工具是如此的具有实用性,所以我们应当重视对它的相关研究与开发。
2.开发工具的选择
2.1开发背景与现状
在很早以前五子棋软件就已经被开发出来了,当时的五子棋软件仅提供了“人机模式”与“双人模式”。
“人机模式”是指,人与计算机进行对弈,计算机按照事先编写好的算法程序来进行下棋;
“双人模式”是指,两个人通过交替使用同一台计算机来进行下棋。
无论是选择哪一种模式,所有的操作都必须在同一台计算机上来往完成,棋局无法在异地计算机之间来进行,故而也叫单机版五子棋软件。
随着计算机网络的迅猛发展,异地计算机之间的通信变得十分便捷。
这也为异地间的用户通过网络来进行下棋提供了可能。
网络五子棋软件利用TCP/IP协议,在异地的玩家之间建立起TCP连接,并用它来交换棋局的各种数据信息。
所以,网络五子棋软件在下棋以前必须要对相关的网络参数进行设置,才能实现玩家双方的成功连接。
连接成功后,玩家双方轮流下棋,并将每一步下棋的信息通过网络传送给对方,使得双方棋盘上的棋子保持一致,并且提供了“互动聊天”“悔棋”、“复盘”和“保存棋局”等功能。
2.2VisualBasic
1.VisualBasic的发展
Basic是英文BeginnersAll-PurposeSymbolInstructionCode(初学者通用符号指令代码)的缩写,在高级语言中占有重要的地位,是专门为初学者设计的计算机语言。
第一代Basic于1964年在Dartmouth学院由JohnKemeny和Thomas设计,由于它的语法很接近人类所使用的自然语言和数学表达式,只有十几条语句,简单易用,因此受到广大计算机初学者的喜爱,很快就得到广泛的应用,第二代Basic是在20世纪70年代中期到80年代中期出现的,其功能有了较大的扩充,应用范围更加广泛,主要有GW-Basic和Microsoft公司的Basic(MS-Basic);
第三代Basic是在80年代中期出现的结构化的TrueBasic、QuickBasic、TurboBasic和Qbasic;
第四代就是VisualBasic.
VisualBasic(简称VB)是美国Microsoft公司推出的、专门针对32位Windows操作系统的程序设计语言,它从Basic发展到VisualBasic,经历了二十多年的历程。
Visual指的是开发图形用户界面(GUI)的方法,VisualBasic在原有Basic语言的基础上进一步发展,至今包含了数百条语句、函数及关键字,其中很多都和WindowsGUI有直接关系。
专业人员可以用VisualBasic实现其他任何Windows编程语言的功能,而初学者只要掌握几个关键词,就可以建立实用的应用程序。
VisualBasic1.0版是1991年Microsoft公司推出的基于窗口的可视化开发工具,当时它的功能相对较少,也有一定的缺陷。
但Microsoft公司凭借其强大的技术优势,经过不断努力,于1993年推出了VisualBasic3.0,这个版本已初具规模,并进入了实用阶段,利用它可以快速创建图形用户界面和多媒体等应用程序。
1995年推出的VisualBasic4.0提供了强大的数据库管理功能,使之成为管理信息系统(MIS,ManagementInformationSystem)的重要开发工具。
而在1998年推出的VisualBasic6.0,则在开发环境和功能上都做了很大的完善、扩充和增强。
实践证明,VisualBasic以其简单易学、功能强大和面向对象编程的优势,已经发展为快速应用程序开发(RAD,RapidApplicationDevelopment)工具的代表,受到广大专业程序设计者和计算机爱好者的普遍欢迎。
2.VisualBasic应用程序的基本特点
在可视化编程上,VisualBasic已成为新一代程序设计语言的杰出代表。
与传统的语言相比,VisualBasic在许多方面都有重要的改革和突破,VisualBasic有以下基本特点:
(1)提供了好学易用的应用程序集成开发环境
VisualBasic的集成开发环境是在Windows平台上实现的。
在这个环境中,开发人员可以进行界面设计、代码编写和程序调试,直至可以把应用程序编译成可执行程序,在脱离VisualBasic的设计环境下直接运行。
这个开发环境支持整个面向对象开发的全过程,具有极大的方便性和高效性。
(2)面向对象的可视化设计工具
在VB开发环境中,应用了面向对象的程序设计方法,即把程序和数据封装起来,视为一个对象工具。
每个对象都是可视的,程序员在设计时,只需要根据设计界面的要求,利用现有的对象工具,直接在屏幕上设置不同的对象(如窗口、菜单、按钮或滚动条等),并为每个对象设置属性即可,而不需要编写大量的代码去描述界面元素的外观和位置(这也就是所说的“所见即所得”)。
通过对这些对象进行属性的设置和调整,就能改变对象的外观及动作的方式,这样用户可以方便地设计出美观、友好地界面,从而简化了界面设计的方法,大大提高了编程的效率。
(3)事件驱动的编程机制
在设计好了用户界面后,就可以编写相应的程序了。
事件驱动是增强程序图形界面交互性的主要方法,是指利用用户的动作或行为控制程序运行的流向。
用户的每一个动作或操作行为都可以产生一个事件(如用户的键盘或鼠标操作、系统消息、程序触发等),每个事件都可驱动一段程序的运行,程序员只需编写响应用户动作的代码即可,这样编写的程序代码短、易编写、易维护,且对象之间的动作顺序可由程序的使用者灵活控制。
(4)结构化的程序设计语言
传统编程方法是面向过程的机制,程序是按事先设计的程序流程来运行的。
程序间要求有严谨的逻辑关系,且程序长、编写难、维护难。
而VB系统提供了丰富的数据类型、众多的内部函数、子程序、事件子程序和自定义函数等模块,各个子程序模块之间彼此独立,也可以相互联系,从而形成了结构化程序,简单易学。
(5)支持多种数据库访问系统
VisualBasic可以利用数据控制或通过ODBC访问数据库,获得后台的数据源支持,从而使VisualBasic前台的界面与数据处理功能结合起来,扩大VisualBasic的应用范围。
VisualBasic可以访问的数据库主要有MicrosoftSQLServer、Access、dBASE、FoxBASE和Paradox等,也可以访问MicrosoftExcel、Lotus1-2-3等多种电子表格。
VisualBasic还可以利用对象的链接与嵌入技术(OLE),开发出具有图、文、声、像、Web等对象合成的应用程序,并可以方便地使用标准地Active部件,调用标准的接口,用于Web或其他支持这一技术的过程中。
VisualBasic采用了部件编程的思想,在VisualBasic中创建的部件可以自用,也可以在其他开发环境(如VC++)中使用,还可以引用其他开发工具建立的部件。
由于具有接口继承性,所以通过部件编程,可以在VisualBasic中实现代码重用。
在数据库应用方面,增加了ADO功能,VisualBasic不仅可以支持本地数据库,而且还可以链接远程数据服务器,大大增强了数据处理能力;
在Internet应用方面,VisualBasic可以通过文档或程序访问Internet,创建Internet服务器应用程序,支持DHTML(动态HTML技术)和Web程序发布等。
(6)OLE和Active技术的应用
OLE(ObjectLink&
Embed)技术是指对象的链接与嵌入技术,能够用于开发集声音、图像、动画、字处理和Web对象等于一体的应用程序。
Active技术可以使开发人员摆脱特定语言的束缚,方便地使用标准地Active部件,调用标准地接口,实现特定的功能。
OLE技术是VB的核心,Active是OLE的发展。
(7)增强的网络功能
VisualBasic最重要的特征之一,是提供了DHTML设计工具。
这种技术可以使Web页面设计者动态地创建和编辑页面,使用户能够在VB中开发出多功能地网络应用软件。
(8)多个应用程序向导
VB的应用程序向导可以自动创建不同类型、不同功能的应用程序,其中包括应用程序向导、安装向导、数据对象向导、数据窗体向导、IIS应用程序和DHTML等
(9)完备的联机帮助系统
与Windows环境下的软件一样,在VB中随时可以利用菜单功能键得到所需要的帮助信息。
帮助窗口的信息和示例代码可以进行复制、粘贴,为用户学习和使用VB提供了捷径。
3.VisualBasic6.0
VisualBasic6.0是在VisualBasic5.0的基础上发展起来的,是VisualBasic5.0的升级版本。
较之VisualBasic4.0,VisualBasic5.0的更新面很广,更新幅度也很大。
从VisualBasic5.0开始,ActiveX就一炮打响,并增加了真正的可执行的本地代码编译,比VisualBasic4.0的伪代码编译快20倍。
而相比VisualBasic5.0,VisualBasic6.0也增加了很多值得称道的新增功能。
VisualBasic6.0现有以下三个版本:
(1)学习版(LeaningEdition):
学习版主要是针对VisualBasic的初学者而设计的,可以开发基于Windows的应用程序,包括创建Windows应用程序所需的内部控件以及数据网络、数据绑定等控件,也为用户提供了联机帮助系统。
对界面要求不高、计算量不大的项目,学习版是可以胜任的。
此外,学习版经济实惠、易学易用,是初学VisualBasic用户的良好选择。
(2)专业版(ProfessionalEdition):
专业版是专业人员提供了一整套功能完备的开发工具,该版本包括学习版中的全部内容,又增加了立体控件、动画按钮、通信控件、进度条、工具条及Internet控件等开发应用程序所需要的全套工具,同时还加强了创建ActiveX部件应用程序和ActiveX部件等方面的功能。
开发在单机上运行的应用程序,专业版是足够的。
它的使用对象是具有一定VisualBasic编程经验的软件开发人员,但初学者从专业版入手也不会遇到多大困难。
(3)企业版(EnterpriseEdition):
企业版使专业编程人员能够以组的形式开发功能强大的分布式应用程序。
该版本包括专业版的全部功能,是VisualBasic最强的版本。
较之专业版,企业版增加了用于组织企业环境中各部件的对象知识库、自动化管理器、数据库管理工具和控制工具、客户机/服务器开发工具等功能。
利用企业版能够创建远程自动对象链接和嵌入(OLE)服务器应用程序,可以通过网络远程调用。
企业版为软件开发团队开发大型的网络环境的应用软件体系提供了强有力的支持,本系统就是立足于企业版进行开发的。
3.网络通讯的基本原理
3.1Tcp/IP体系结构
3.1.1Tcp/IP简介
TCP/IP作为Internet的核心协议,通过近二十多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。
TCP/IP协议集确立了Internet的技术基础。
TCP/IP协议主要作用于OSI网络参考模型中的网络层(第3层)、传输层(第4层)和应用层(第7层)。
数据链路层(第2层)的功能主要应用于其它协议如以太网(Ethernet)、ATM、帧中继(FrameRelay),以及多数供应商特定协议等。
TCP/IP充分支持所有通用第2层协议。
TCP/IP组中的应用程序通常直接运行于传输层协议TCP或UDP上面,并不需要表示层(第6层)和会话层(第5层)的支持。
3.1.2Tcp/IP特点
TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。
因此用户一般不涉及。
编程时,编程界面有两种形式:
一、是由内核心直接提供的系统调用;
二、使用以库函数方式提供的各种函数。
前者为核内设计,后者为核外设计。
用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。
TCP/IP协议并不完全符合OSI的七层参考模型。
传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。
该模型的目的是使各种硬件在相同的层次上相互通信。
这7层是:
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
这4层分别为:
图3-1-2TCP/IP参考模型
应用层:
在TCP/IP模型的最上层是应用层(ApplicationLayer),它包含所有的高层的协议。
高层协议有:
虚拟终端协议TELNET、文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等等。
传输层:
传输层位于互联网层的上一层,传输层的协议只存在于主机之中,它的功能是提供主机之间进程与进程的有效数据传输。
传输层使用端口号向应用层中不同进程提供与该端口号相应的服务。
在传输层中有TCP协议(TransmissionControlProtocol)即传输控制协议,和UDP协议(UserDatagramProtocol)即用户数据报协议。
互连网络层:
它是整个体系结构的关键部分。
它的功能是负责路由选择合适的通信节点,使数据分组能从源主机发往目的主机。
这些分组到达目的主机的顺序和发送的顺序可能不同,因此如果需要按顺序发送和接收时,高层必须对分组进行排序。
网络接口层(主机-网络层):
接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、SerialLine等)来传送数据。
TCP协议是建立在IP协议之上的面向连接的端到端的通信协议。
由于IP协议是无连接的不可靠的协议,IP协议不可能提供任何可靠性保证机制,所以,TCP协议的可靠性完全由自身实现。
TCP协议采取了确认、超时重发、流量控制等各种保证可靠性的技术和措施。
TCP和IP两种协议结合在一起,实现了传输数据的可靠方法。
它的安全和可靠性比UDP要高出很多。
由于网络五子棋对实时性要求较高,综合考虑的结果,本软件应使用TCP/IP协议。
3.1.3Tcp/IP协议的应用
TCP(TransferControlProtocol)允许你创建并维护一个与远程计算机的连接,使用该连接,两台计算机之间就可以交换数据了。
如果你在创建一个客户应用程序,你必须知道服务器计算机的名字T注:
建议用IP地址或IP地址(RemoteHost属性),以及要监听的端口号(RemotePort属性),然后调用Connect方法。
如果你在创建一个服务器应用程序,设置要监听的端口号(LocalPort属性),调用Listen方法。
当客户建立连接请求时,产生ConnectionRequest事件。
要完成该连接,在ConnectionRequest事件中调用Accept方法。
一旦建立了连接,两台计算机之间就可以发送和接受数据了。
要发送数据,调用SendData方法。
当接受数据时,产生DataArrival事件。
在DataArrival事件中调用GetData方法来检取数据。
3.2Winsock
1.TCP协议:
TCP(TransferControlProtocol)是传输控制协议的简称,是基于连接的协议,在数据传输之前必须先建立连接。
通过TCP协议建立的是客户/服务器通信方式。
2.UDP协议:
UDP(UserDataProtocol)是用户数据文报协议的简称,两台计算机之间的传输类似于传递邮件;
两者之间没有明确的连接,可作为服务器,也可作为客户机。
使用UDP协议建立对等通信和通过TCP建立客户/服务器通信的方法略有不同,它不需要建立客户和服务器,而是建立对等通信。
3.Winsock属性:
LocalPort:
返回或者设置所用到的本端口;
如果指定的是端口0,就使用一个随机端口。
Protocol:
返回或设置Winsock所用的协议是TCP或UDP。
State:
返回控件的状态,用枚举类型来表示。
常数
值
描述
SckClosed
缺省值,关闭
SckOpen
1
打开
SckListening
2
侦听
SckConnectionPending
3
连接挂起
SckResolvingHos
4
识别主机
SckHostResolved
5
已识别主机
SckConnecting
6
正在连接
SckConnected
7
已连接
SckClosing
8
同级人员正在关闭连接
SckError
9
错误
表1Winsock控件的State属性及其描述
4.Winsock方法:
Listen:
用于服务器程序,等待客户访问。
Connect:
用于向远程主机发出连接请求
Accept:
用于接受一个连接请求
Senddata:
此方法用于发送数据
Getdata:
用来取得接收到的数据
格式:
Winsock对象.getdata变量[,数据类型[,最大长度]]
Close:
关闭当前连接
Winsock对象.close
5.事件:
DataArrival:
新数据到达时出现;
获取一个GetData调用中的全部数据。
ConnectionRequest:
当远程计算机请求连接时接受连接请求。
SendComplete:
在完成一个发送操作时出现。
SendProgress:
在发送数据期间出现。
Close:
当远程计算机关闭连接时出现。
2.需求分析与总体设计
2.1需求分析
软件的需求分析是软件生存期中重要的一步,也是决定性的一步。
只有通过需求分析才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。
在此阶段,了解用户要求本软件必须满足的所有功能和限制,以及用户对软件功能和性能的要求,弄清用户想要软件“做什么”,准确地表达用户的要求。
2.1.1五子棋功能需求
①能通过网络进行下棋
②符合五子棋的基本规则
③提供“复盘”、“悔棋”等功能
④提供玩家之间的聊天功能
⑤有背景音乐
⑥提供保存聊天记录和下棋记录的功能
2.1.2五子棋的规则
规则没有依照国际的规定,所以在19x19的棋盘上,只要任一方先连成五颗就获胜。
当主机的人为先手,下黑子。
2.2总体分析
在需求分析结束后,已经弄清楚了软件的各种需求,较好地解决了用户要软件“做什么”的问题,接下来就将着手实现软件的需求,即要着手解决“怎么做”的问题。
在这个阶段着重实现需求的程序模块设计问题,并将需求转化为软件的系统结构,进行模块的划分,确定每个模块的功能、接口及模块之间的调用关系。
根据需求分析制订出整个软件的系统结构图,如图2.2所示:
图2-2
3.五子棋游戏设计
3.1设计原理
使用VB提供的Winsock控件来实现网络通信,采用的网络