VB_NET中的网络编程课件

上传人:我*** 文档编号:142168951 上传时间:2020-08-17 格式:PPT 页数:46 大小:240.50KB
返回 下载 相关 举报
VB_NET中的网络编程课件_第1页
第1页 / 共46页
VB_NET中的网络编程课件_第2页
第2页 / 共46页
VB_NET中的网络编程课件_第3页
第3页 / 共46页
VB_NET中的网络编程课件_第4页
第4页 / 共46页
VB_NET中的网络编程课件_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《VB_NET中的网络编程课件》由会员分享,可在线阅读,更多相关《VB_NET中的网络编程课件(46页珍藏版)》请在金锄头文库上搜索。

1、一. 网络编程基础知识 二. .Net中的网络编程类 三. .Net网络程序基本结构 四. .Net多线程技术 五. 在网络编程中结合多线程技术,本章目录,一网络编程基础知识1.1 Socket,Socket通常也称为“套接字”,用于描述IP地址和端口。它实质上提供了进程通信的端点。进程通信之前,双方首先必须各自创建一个端点,否则没有办法建立联系并相互通信。正如打电话之前,双方必须各自拥有一台电话机。 Socket同样可以被视为一个数据通道,这个通道架设在应用程序端(客户端)和服务器端之间,而后,数据的读取(接收)和写入(发送)均针对这个通道来进行。,本章目录,socket 是面向客户/服务器

2、模型而设计的,针对客户和服务器程序提供不同的socket功能调用。 客户端需要申请一个socket (相当于一个想打电话的人首先获得一部电话机),系统为之分配一个socket号;服务器端则拥有全局公认的 socket ,任何客户端都可以向它发出连接请求和信息请求(相当于一个被呼叫的电话拥有一个呼叫方知道的电话号码)。,本章目录,Socket 是访问 Internet 使用得最广泛的方法。在Internet上有很多用于提供网络服务的主机,这些主机一般运行了多个服务软件,提供不同的服务(比如电子邮件服务、ftp服务、http网页服务等)。而每种服务实际上都会打开一个Socket,并绑定到一个端口上

3、,不同的端口对应于不同的服务。,本章目录,可见,Socket正如其英文原意(“插座”)那样,象一个多孔插座。而一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。,本章目录,1.2 网络协议,网络协议是网络上计算机为交换数据所必须遵守的通信规范和消息格式的集合。目前常用的网络协议有TCP协议和UDP协议。,本章目录,.TCP协议 TCP是Tranfer Control Protocol的简称,是一种面向连接的保证可靠传输的协议。通过TCP协议传输,得到的是一个

4、顺序的无差错的数据流。发送方和接收方的两个Socket之间必须建立连接,以便在TCP协议的基础上进行通信。当一个Socket(通常都是Server Socket)等待建立连接时,另一个Socket可以请求连接,一旦这两个Socket连接起来,它们就可以进行双向数据传输,双方都可以进行发送或接收操作。,本章目录,.UDP协议 UDP是User Datagram Protocol(数据报协议)的简称,是一种无连接的协议。每个数据报都是一个独立的信息,在其中包括了完整的源地址或目的地址信息,因此无需要建立发送方和接收方的连接。 每个数据报在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目

5、的地的时间以及内容的正确性都是不能被保证的。,本章目录,二 .Net中的网络编程类,.Net Framework为应用程序访问Internet提供了分层的、可扩展的以及受管辖的网络服务。其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序。.Net采用的分层结构允许应用程序在不同的控制级别上访问网络,这些级别几乎囊括了Internet的所有需要 从Socket套接字到普通的请求/响应。,本章目录,抛开ISO/OSI模型的7层构架,单从TCP/IP模型上的逻辑层面上看,.Net网络编程类可以视为包含3个层次:请求/响应层、应用协议层、传输层。

6、WebReqeust和WebResponse 代表了请求/响应层,支持Http、TCP和UDP的类组成了应用协议层,而Socket类处于最底层的传输层。,本章目录,System.Net.Sockets 命名空间为需要访问网络底层功能的开发人员提供了Socket接口。 System.Net 命名空间中的所有其他网络访问类都是建立在Socket的基础上的。如TCPClient、TCPListener 和 UDPClient 类,以及提供用于网络访问的基础数据流的NetworkStream类等。,本章目录,2.1 IPAddress类和IPEndPoint类 在System.Net命名空间中,有两个

7、专门用于处理各种类型的IP地址信息的类型:IPAddress类和IPEndPoint类。 1.IPAddress类 IPAddress类用于表示一个IP地址,可以使用Parse方法直接创建IPAddress的实例: IPAddress ip=IPAddress.Parse(192.168.1.1); IPAddress类还提供了4个只读属性,分别代表程序中使用的特殊IP地址:(1)Any:代表本地系统可用的任何IP地址。 (2)Broadcast:代表本地网络的IP 广播地址。 (3)Loopback:代表系统的回送地址。 (4)None:代表系统上没有网络接口。,本章目录,另外,在Syste

8、m.Net命名空间下,包含有一个Dns类,可以利用该类的GetHostName()方法找到本地系统的主机名,然后再用GetHostByName()找到主机的IP地址。 2.IPEndPoint类 IPEndPoint对象通过一个IP地址/端口的组合来确定一个连接端点。其构造函数为: IPEndPoint(IpAddress address,int port); 该类有几个常用的属性: (1)Address:得到或者设置IP地址。 (2)AddressFamily: 获取网际协议 (IP) 地址族。 (3)Port: 获取或设置终结点的 TCP 端口号.,本章目录,例: Dim localEnd

9、Point As New IPEndPoint ( IPAddress.Parse(127.0.0.1), 1024)指定IP和Port,本章目录,2.2 Socket类 Socket类的构造函数为: public Socket( AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType); addressFamily 参数指定Socket 使用的寻址方案,对于网络上的IP通信来说,addressFamily总是使用AddressFamily.InterNetwork这个值。 socketType

10、 参数指定Socket 的类型。 protocolType 参数指定 Socket 使用的协议。,本章目录,本章目录,例: Imports System.Net.sockets Imports S Dim Sserver As Socket = Nothing Sserver = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) 使用TCP协议,Socket类中常用的成员函数 (1)绑定地址(服务器端创建Socket后首先要做 的工作) void Bind(IPEndPoint localEP

11、); 使 Socket与 一个本地端点相关联。 只有服务器端的Socket需要进行绑定。而且只有在 进行绑定后才能在服务器端调用Socket的其它功能。 例:Dim localEndPoint As New IPEndPoint ( IPAddress.Parse(“127.0.0.1”), 1024)指定IP地址和端口 Sserver.Bind(localEndPoint)把socket和该端点绑定,本章目录,(2)监听连接请求(只在服务器端需要这一步骤) void Listen(int backlog); backlog指定最多可以接受的传入连接数。 设置套接字处于监听状态。当数据到达某个

12、端口时,它会向主机发送通知消息。 例: Sserver.Listen(100)开始监听,最多接受100个连接。,本章目录,(3)接受连接请求(只在服务器端需要这一步骤) Socket Accept(); 注意返回值是一个新建立的Socket。 当服务器端正在监听的Socket调用Accept成员函数,并且接收到了某个客户端发来的连接请求时,就会新建立一个Socket,专门用来和这个客户端进行通信。 例:Dim newsocket As Socket = Sserver.Accept() 注意:服务器端和客户端真正进行收发数据都是通过 在建立连接时新建的socket进行的。在上面的例子里 就是通

13、过newsocket,而不是通过Sserver 。,本章目录,(4)建立连接(只在客户端需要这一步骤) void Connect(IPEndPoint ip); 用来与远程服务器建立连接。连接之后,可以用Send()发送数据或用Receive()函数接收数据。 例:Dim Sclient = New Socket ( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) Dim localEndPoint As New IPEndPoint ( IPAddress.Parse(“127.0.0.1”), 1024) 指

14、定要连接的服务器端的端点 Sclient.Connect(localEndPoint),本章目录,(5)发送数据 可以使用Socket类的Send()或SendTo()成员函数。 int Send(byte buffer); int SendTo(byte buffer,IPEndPoint remoteIP); 向指定的地址发送数据。 例: SClient.Send(Encoding.Unicode.GetBytes(TextBox1.Text) 例子中的Encoding类是在System.Text名字空间中定义的(所以需要在程序中Import System.Text)。另外采用Unicod

15、e编码才能正确传送汉字。,本章目录,(6)接收数据 使用Socket类的Receive()或ReceiveFrom()成员函数来接收数据。 int Receive(byte buffer); int ReceiveFrom(byte buffer,ref IPEndPoint ip) 例:Dim bytes(1024) As Byte 用来存储接收到的字节newsocket.Receive(bytes) newsocket是服务器端接受一个连接请求后新建的一个socket,本章目录,(7)关闭Socket 使用Socket类的Close()成员函数来关闭不再使用的socket。 例: asoc

16、ket.Close() asocket是之前创建的一个socket,本章目录,三.Net网络程序基本结构,基于IP的通信有两种通信类型:面向连接的和无连接的。在面向连接的通信中,Socket使用TCP协议来建立两个IP地址端点之间的会话。一旦建立了这种连接,就可以在设备之间可靠地传输数据。 为了建立面向连接的Socket通信,服务器和客户端必须分别进行编程(也就是分别为服务器端和客户端编写一个独立的程序)。,本章目录,面向连接的网络程序基本结构及流程 服务器端 客户端,本章目录,3.1 服务器端程序的基本流程 (1)建立Socket。 (2)将Socket绑定到用于TCP通信的本地IP地址和端口上。 (3)设置Socket处于监听状态。 (4)等待客户端连接请求,当收到连接请求时则与客户端建立连接。 (5)与客户端发送数据或接受数据。 (6)关闭Socket。,本章目录,3.2 客户端程序的基本流程 (1)建立Socket。 (2)与服务器进行连接。 (3)发送或接

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号