- 1、本文档共92页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章书店内部即时通信系统
10.1 学习情境引入 在日常的经营过程中,各部门工作人员间需要经常进行沟通和交流,刚好书店内部各部门的计算机组成了一个局域网,若是实现在线交流,那么将大大节省时间,提高工作效率。而现在流行的QQ、MSN等网络通信软件大多需要Internet的支持。而书店局域网未连接Internet,则QQ、MSN等软件无法运行。因此,我们要开发一个不需要Internet支持的局域网内部即时通信系统。 10.1 学习情境引入 10.1.1 项目需求 经过同书店工作人员的交流、归纳总结,确定我们要设计的这个局域网内部即时通信系统由1个服务器端和若干个客户端组成,具体功能需求如下。 1.客户端 客户端能够通过指定端口连接到服务器端,并能够同时进行信息的接收和发送,实现在线通信的功能。 2.服务器端 服务器端能够对指定的端口不间断地进行监听扫描,对监听到的每个客户端建立连接,并分别实现信息的收发功能,实现一对多的即时通信。 10.1 学习情境引入 10.1.2 展示 实现了通信功能的局域网内部即时通信系统的界面如图10?1和图10?2所示。 10.1 学习情境引入 10.1 学习情境引入 10.1 学习情境引入 10.1.3 技术分解 在如图10?1所示的服务器端,程序运行后首先需要建立监听Socket的实例listenSocket,来监听用户指定端口,并启动监听线程。当监听到客户端的连接时,为每个客户端连接建立Socket套接字实例,取出该Socket实例的IP地址添加到组合框中,并建立和启动对应于每个客户端连接的接收线程,准备随时接收数据。当接收数据时,可以调用Socket连接的Receive()方法来接收客户端发来的数据。当向客户端发送数据时,首先将要发送的数据转换为字节数组,并调用Socket连接的Send()方法发送到客户端。用户关闭窗体时,调用Socket连接的Close()方法来关闭所有连接。 在如图10?2的客户端,程序运行后需要初始化Socket类的实例,并对用户输入的服务器IP地址和端口号进行尝试解析,进而尝试建立与服务器的Socket连接。当连接成功后,建立并启动数据接收线程,随时接收服务器端的信息。调用Socket连接的Receive()方法和Send()方法来对接收或向服务器端发送信息数据,用户关闭窗体时,调用Socket连接的Close()方法来断开连接。 通过Visual Studio.NET提供的.NET 的套接字接口编程技术和多线程技术,能够建立服务器与多客户端的连接,并能进行网络通信,完全满足前述需求的需要。因此,本章我们需要了解的基本知识有如下几种。 ● .NET 的套接字接口编程技术。 ● 多线程技术。 10.2 基本知识1:.NET 的套接字接口编程技术概述 10.2.1 .NET套接字接口编程的基本概念 1.套接字接口编程的基本概念 (1)套接字基本概念。最初在UNIX环境的一种叫做Berkeley套接字的协议是在网络上进行TCP/IP通信的标准。在Windows中,Berkeley套接字的实现称为WinSocks,.NET中的套接字指WinSocks的托管实现。套接字是TCP/IP网络通信的基石,是支持TCP/IP的网络通信的基本操作单元。 图10?3示出了分布式应用程序间通过套接字通信的示意图。 10.2 基本知识1:.NET 的套接字接口编程技术概述 10.2 基本知识1:.NET 的套接字接口编程技术概述 在一台主机上,各种不同的应用共享Socket域(虚线框范围),由本机的Socket与对方主机的Socket完成通信,应用层只看到Socket。 各种应用在一个Socket域中的区分是通过端口号实现的。端口号用16位的数表示,小于1024的端口号留给标准应用,如HTTP应用端口号80,FTP端口号21等。自定义的应用要使用1024以上的端口,否则可能导致系统标准功能不可用。 主机地址是网络中主机的唯一标记,所以,有了一个地址和一个端口号,就可以确定一个通信端点。而一对地址和同一个端口则确定了某种应用的一个通信。 由于实际上对等层协议相同才可以正常通信,两个通信端点之间还要知道对方的其他一些细节才可以沟通。比如,规定数据传送方式的套接字类型(流式或数据报式等),规定数据格式的协议类型(TCP或UDP等),规定地址格式的地址族类型(IP或IPv6等),等等。 10.2 基本知识1:.NET 的套接字接口编程技术概述 (2)套接字通信的过程。要通过TCP/IP进行通信,至少需要一对套接字,其中一个运行
文档评论(0)