网络编程简介课件

上传人:我*** 文档编号:139145099 上传时间:2020-07-20 格式:PPT 页数:33 大小:439.50KB
返回 下载 相关 举报
网络编程简介课件_第1页
第1页 / 共33页
网络编程简介课件_第2页
第2页 / 共33页
网络编程简介课件_第3页
第3页 / 共33页
网络编程简介课件_第4页
第4页 / 共33页
网络编程简介课件_第5页
第5页 / 共33页
点击查看更多>>
资源描述

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

1、网络编程,基本概念:,基本概念(续2):,网络编程,基本概念:常用网络通信协议,TCP/IP协议 TCP( Transmission Control Protocol传输控制协议) IP( Internet Protocol 网际协议) HTTP协议 Hypertext Transter Protocol 超文本传输协议 FTP协议 SMTP协议 Simple Mail Transfer Protocol 简单邮件传输协议 POP3/ IMAP协议 POP3(Post Office ProtocolVersion3,邮局协议) IMAP(Internet Message Access Prot

2、ocol, Internet消息访问协议),常用的网络协议,网络编程,域名(Domain Address) 与IP地址间存在映射关系,由网络中的域名服务器DNS:Domain Name Server)负责解析。 端口(Port) 逻辑上的数据传输通道、或模拟通道。,基本概念(续3):,C#网络编程(DNS类的常用方法,P10),System.Net命名空间包含一些可以给低级和简单的编程接口类. 其中常用的类如下:(P9表1-2) 1、DNS类 向使用 TCP/IP Internet 服务的应用程序提供域名服务 该类常见方法: (1) Resolve()方法:查询DNS服务器以将用户友好的域名

3、(如“”)映射到数字形式的 Internet 地址(如 192.168.1.1)。 Resolve()方法返回一个IPHostEntry实例,该实例包含所请求名称的地址和别名的列表。大多数情况下,可以使用 AddressList 数组中返回的第一个地址。 IPHostEntry ipHostInfo = Dns.Resolve(); IPAddress ipAddress = ipHostInfo.AddressList0;,C#网络编程(DNS类的常用方法,P10),(2) GetHostname()方法 GetHostByAddress()方法 GetHostByName()方法 Stri

4、ng hostname=Dns. GetHostname(); IPHostEntry hostInfo=Dns.GetHostByAddress(“192.168.1.1”); IPHostEntry hostInfo=Dns.GetHostByName(); 在使用以上方法时,你将可能需要处理以下几种异常: SocketException异常:访问Socket时操作系统发生错误引发 ArgumentNullException异常:参数为空引用引发 ObjectDisposedException异常:Socket已经关闭引发,C#网络编程( IPHostEntry类的常用方法,P10),2、

5、IPHostEntry类(P9表1-2) 为Internet主机地址信息提供容器类。该类的实例对象中包含了Internet主机的地址相关信息 。 主要的一些属性有: AddressList属性、Aliases属性以及HostName属性。 AddressList属性:获取或设置与主机关联的IP地址列表。该属性值是一个IPAddress类型的数组; Aliases属性:获取或设置与主机关联的别名列表。该属性中是一组字符串。,C#网络编程( IPHostEntry类的常用方法,P10),2、IPHostEntry类续(P9表1-2) AddressList属性:获取或设置与主机关联的IP地址列表。

6、该属性值是一个IPAddress类型的数组; Aliases属性:获取或设置与主机关联的别名列表。该属性中是一组字符串。,IPHostEntry IPHost = Dns.Resolve(); string aliases = IPHost.Aliases; Console.WriteLine(aliases.Length); IPAddress addr = IPHost.AddressList; Console.WriteLine(addr.Length); for(int i= 0; i addr.Length ; i+) Console.WriteLine(addri); ,3、IPE

7、ndPoint类 网络地址标识网络上的特定设备;端口号标识要连接到的该设备上的特定服务。网络地址和服务端口的组合称为终结点。 IPEndPoint类包含应用程序连接到主机上的服务所需的主机和端口。该类中的属性有:Address属性、AddressFamily属性以及Port属性 。,C#网络编程( IPEndPoint类的常用方法,P10),IPHostEntry IPHost = Dns.Resolve(“”); IPAddress addr = IPHost.AddressList0; IPEndPoint ep = new IPEndPoint(addr,8000);,4、IPAddre

8、ss类 提供对IP地址的转换、处理等功能 IPAdress.Parse()方法 -将IP地址字符窜转换为IPAddress实际实例。 例:IPAddress ip=IPAddress.Parse(“192.168.1.1”);,C#网络编程( IPEndPoint类的常用方法,P10),IPAdress类提供了7个只读字段: Any : 本地系统可用的任何IP地址 Broadcast :本地网络的IP广播地址 Loopback : 系统的回送地址 None :系统上没有可用的网络接口 IPv6Any: IPv6None IPv6Loopback,C#网络编程,例: 获取本地计算机的主机名 /

9、Dns.GetHostName() 获取指定 DNS 主机名的 DNS 信息 / Dns.GetHostByName() /得到本地主机的DNS信息 IPHostEntry myHost = new IPHostEntry(); try mhhost=Dns.GetHostName(); console.writeline(myHost.HostName.ToString(); myHost = Dns.GetHostEntry(Dns.GetHostName(); /显示本地主机的IP地址表 for(int i=0; i+myHost.AddressListi.ToString()+r);

10、catch(Exception error) MessageBox.Show(error.Message); ,C#网络编程,例:对一组IP地址(同一网段的)查看其主机是否在线。 原理是:若该主机在线,则通过IP访问该主机,将可以解析出其主机名。 string strScanIPAdd=“192.168.10.1” try IPHostEntry myScanHost = Dns.Resolve(strScanIPAdd); string strHostName = myScanHost.HostName.ToString(); catch(Exception error) MessageBo

11、x.Show(error.Message); ,客户机/服务器模式(P6),客户机/服务器(client/server)模式 客户向服务器发出请求,服务器接收后,提供相应的服务。 服务器需有处理多个客户进程请求的能力,即并发处理能力。因此,服务器根据请求采用“并发服务器”或“重复服务器”。 若为“并发服务请求”,则,要激活一新进程处理客户请求。,套接字(socket)引入,为了方便开发网络应用程序。由美国伯克利大学在UNIX上推出了一种程序访问通信协议的操作系统调用socket。Socket的出现,使程序员可以方便地访问TCP/IP。 随着UNIX的应用推广,socket又被引进到window

12、s等操作系统中。Java语言、C+语言、C#语言等也引入了socket编程思想。 即:两个进程间通过一个双向的网络通信连接实现数据交换,这种通信链路的端点被称为“套接字”,套接字及其类型(P5),1、流式套接字(sock_stream) 使用TCP协议,在传输前必须先建立一条通信连接。不支持广播和多播方式。 2、数据报套接字(sock_dgram) 使用UDP协议进行传输。支持广播和多播方式。 3、原始套接字(sock_raw) 可读写内核没有处理的IP数据报,以便对较低层协议,如IP、ICMP协议直接访问。,套接字Socket的建立(参见P18),1、流式套接字(sock_stream) S

13、ocket socket= newSocket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);,2、数据报套接字(sock_dgram) Socket socket= newSocket(AddressFamily.InterNetwork, SocketType.Dgram,ProtocolType.Udp);,3、原始套接字(sock_raw),网络进程通信的标识(P6),网络进程需要采用三级寻址: 特定网络协议、主机地址、进程标识 半相关-准确标识本地通信进程 全相关-准确标识了网间通信进程,Socket类

14、-常用属性,Socket类-常用方法1,Socket类-常用方法2,Socket类-常用方法3,套接字Socket的使用(参见P19),服务器端: Socket newsocket= newSocket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp); newsocket.Bind(newIPEndPoint(IPAddress.Parse(_localIP),2000); / 将该套接字绑定到本地的IPEndAddress,端口上 newsocket.Listen(50); Socket client=newso

15、cket.Accept();,套接字Socket的使用(参见P20),客户端: Socket socket= newSocket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);socket.Connect(IPAddress.Parse(192.168.0.53),2000 ) ; / 将该套接字连接到远程IPEndAddress,端口上 if(socket.Connected)。; 。;,总结,C#网络编程 1、常用命名间 2、获取Dns信息 3、终结点IPEndPoint的设置 4、Socket的建立 5、服务器端Accept 6、客户端Connection,实际应用举例: 扫描指定网段IP地址区域,返回主机名。,实际应用举例: 扫描指定主机的指定端口区域是否开放。,相关API(java),JDK的包中定义了与IP地址/域名有关的类。 .InetAddress 32或128位无符号数字表示的IP地址。 .Inet4Address 继承了InetAdress类,以32位无符号数字表示的IPv4地址。如:“192.168.1.1” .Inet6Address 继承了InetAdress类,以128位无符号数字表示的IPv6地址。如:“1080:0:0:0:8:800:200C:4

展开阅读全文
相关资源
相关搜索

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

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