Socket网络通信程序设计.ppt
《Socket网络通信程序设计.ppt》由会员分享,可在线阅读,更多相关《Socket网络通信程序设计.ppt(41页珍藏版)》请在三一办公上搜索。
1、2010.07,第8章 网络通信程序设计,学习要点,1.了解主机消息的定义和获取方法2.了解TCP协议、UDP协议和FTP协议的基本功能3.掌握利用Socket开发TCP应用程序、利用UdpClient类开发UDP应用程序以及利用FtpWebRequest类和WebClient类开发FTP应用程序的基本方法,8.1 网络应用系统的体系结构,1、系统性能比较 B/S占有优势的是其采用浏览器软件与服务器进行交互。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等基本功能,绝大部分工作须由服务器承担,使得服务器
2、的负担很重。采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力,并且也减轻了网络的运行负荷,8.1 网络应用系统的体系结构,2、系统开发比较 C/S结构是建立在中间产品基础之上的,应用程序的维护、移植和互操作相对B/S要复杂的多。如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。相比于B/S结构,C/S技术发展历史更为悠久,所以,C/S技术的应用更成熟、系统的运行更可靠。3、系统升级维护比较 C/S结构的功能模块一旦有修改或升级,就需要重新维护或安装全部的客户端软件,所以系统的升级维护成本高。而B/S结构却大大简化
3、了客户端,因为只要客户机能上网使用浏览器即可,B/S结构系统的开发、维护等几乎都集中在服务器端,所以,不仅方便、灵活,而且成本也更低。,8.2 Socket与网络通信,人与人之间的交流可以概括为:与哪个人或哪些人,使用哪种语言(汉语还是英语),采用什么方式(话音还是文字)。与此过程类似,计算机之间的通信也有多种方法,在C#中,当获取了通信计算机的相关主机对象及其消息,并明确了通信所采用的相关协议后,就可以利用Socket类实现计算机之间的网络通信。,8.2.1 定义和获取主机消息,命名空间1.定义主机对象IP地址和端口号可以确定具体的主机对象,System.Net命名空间中的IPEndPoin
4、t类表示IP地址和端口号。其构造函数的常用形式如下:public IPEndPoint(IPAddress address,int port)其中,address为IP地址,port为端口号。通常使用Parse()方法创建IPAddress的实例,然后再得到IPEndPoint对象,例如:IPAddress ip=IPAddress.Parse(127.0.0.1);IPEndPoint ipe=new IPEndPoint(ip,8888);,8.2.1 定义和获取主机消息,2.获取主机信息System.Net命名空间中的Dns(Domain Name System域名系统)类提供了一系列静
5、态的方法,用于获取提供本地或远程域名等功能,常用方法有:GetHostAddresses方法获取指定主机的IP地址,返回一个IPAddress类型的数组。构造函数为:public static IPAddress GetHostAddresses(string hostNameOrAddress);例如:IPAddress ip=Dns.GetHostAddresses();listBox1.Items.AddRange(ip);GetHostName方法获取本机主机名。例如:string hostname=Dns.GetHostName();,8.2.2 网络协议概述,1.网络协议的层次划分
6、 为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)以及应用层(Applica
7、tion Layer)。其中低四层完成数据传送服务,高三层面向用户。对于每一层,至少制定两项标准:服务定义和协议规范。前者给出了该层所提供的服务的准确定义,后者详细描述了该协议的动作和各种有关规程,以保证服务的提供。,8.2.2 网络协议概述,2.以用途划分的网络协议根据用途的不同,网络协议可划分如下:网络层协议:IP、ICMP、ARP、RARP传输层协议:TCP、UDP应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS,8.2.3 Socket概述,Socket就是套接字,它是引用网络连接的特殊的文件描述符,由3个基本要素组成:AddressFamily(网络类型)
8、、SocketType(数据传输类型)及ProtocolType(采用的网络协议)。命名空间包含了一个Socket类,该类提供了与低级Winsock API的接口。Socket类的构造函数为:Socket(AddressFamily af,SocketType st,ProtocolType pt)下表列出了可用于IP通信的套接字组合。,8.3 TCP/IP与网络通信程序设计,8.3.1 TCP/IP概述TCP/IP(Transmission Control Protocol/Internet Protocol),即“传输控制协议/互连网协议”,是Internet采用的一种标准网络协议。它是由
9、ARPA(Advanced Research Project Agency:美国高等研究计划署)于1977年到1979年推出的一种网络体系结构和协议规范。IP是网络层协议最主要的协议,TCP是传输层最主要的协议。TCP是一种面向连接的协议,即利用TCP传送数据的时候,首先必须先使用低级通信协议IP在计算机之间建立连接(也就是所谓的握手),然后才可以传输数据。TCP通过可靠递交和定序,在支持双向通信的客户机与服务器之间提供可靠的字节通信。它去除了分组乱序和分组丢失等很多UDP(UDP协议介绍请参考8.4)的缺陷,从而简化了网络通信。UDP关心的是传输数据分组,而TCP关注的是建立连接发送和接收字
10、节流的网络连接。随着Internet网的发展,TCP/IP也得到进一步的研究开发和推广应用,成为Internet网上的“通用语言”。,8.3.2 基于TCP/IP的网络通信原理,8.3.3 基于TCP的网络通信程序设计,1.一个简单的网上聊天程序设计(文本版)服务器端聊天程序设计【示例代码:chpt8-1aChatServer】设计步骤如下:(1)新建一个C#项目,其Windows应用程序命名为ChatServer,并分别从“公共组件”和“容器”工具箱中拖放1个GroupBox控件、1个Label控件、1个Button控件以及2个RichTextBox控件到该窗体上。(2)分别对新建项目的相应
11、控件,按下表所示的内容进行属性值设置。,8.3.3 基于TCP的网络通信程序设计,1.一个简单的网上聊天程序设计(文本版)服务器端聊天程序设计【示例代码:chpt8-1aChatServer】(详细代码见教材),服务器端聊天程序窗体设计(文本版),8.3.3 基于TCP的网络通信程序设计,客户机端聊天程序设计【示例代码:chpt8-1a ChatClient】设计步骤如下:(1)新建一个C#项目,其Windows应用程序命名为ChatClient,并分别从“公共组件”和“容器”工具箱中拖放1个GroupBox控件、2个Label控件、2个TextBox控件、1个Button控件以及2个Rich
12、TextBox控件到该窗体上。(2)分别对新建项目的相应控件,按下表所示的内容进行属性值设置。,8.3.3 基于TCP的网络通信程序设计,1.一个简单的网上聊天程序设计(文本版)客户机端聊天程序设计【示例代码:chpt8-1a ChatClient】(详细代码见教材),客户机端聊天程序窗体设计(文本版),8.3.3 基于TCP的网络通信程序设计,1.一个简单的网上聊天程序设计(文本版)程序测试:,聊天程序测试(文本版),8.3.3 基于TCP的网络通信程序设计,2.一个简单的网上聊天程序设计(图文版)该网上聊天程序采用NetworkStream类以网络流的方式实现网络通信,并以Unicode编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Socket 网络 通信 程序设计
链接地址:https://www.31ppt.com/p-5576191.html