欢迎来到天天文库
浏览记录
ID:57686733
大小:549.00 KB
页数:18页
时间:2020-09-01
《C#socket编程从入门到精通汇编.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、讲Socket编程前,先来看几个常用的类和方法,相信这些东西可以事半功倍。 一、IP地址操作类 1、IPAddress类在该类中有一个 Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下: IPAddressaddress=IPAddress.Parse(“192.168.0.1”); IPAddress提供4个只读字段 Any 用于代表本地系统可用的任何IP地址 Broadcase用于代表本地网络的IP广播
2、地址 Loopback用于代表系统的回送地址 None用于代表系统上没有网络接口 其中IPAddress.Any常用来表示本机上所有的IP地址,这对于socket服务进行侦听时,方便使用,不用对每个IP进行侦听了。而IPAddress.Broadcase可用来UDP的IP广播。 2、IPEndPoint类 我们可以通过2种构造方法来创建IPEndPoint类: a、IPEndPoint(longaddress,i
3、ntport) b、IPEndPoint(IPAddressaddress,intport) 四个属性: Address AddressFamily Port MaxPort MinPort IPEndPoint其实就是一个IP地址和端口的绑定,可以代表一个服务,用来Socket通讯。 二、DNS相关类 DNS类有四个静态方法,来获取主机DNS相关信息, 1、GetHostName()
4、 通过Dns.GetHostName()可以获得本地计算机的主机名 2、GetHostByName() 根据主机名称,返回一个IPHostEntry对象: IPHostEntryGetHostByName(stringhostName) 其中IPHostEntry把一个DNS主机名与一个别名和IP地址的数组相关联,包含三个属性: AddressList:一个IPAddress对象的数组 Aliases:一个字符串对象数
5、组 HostName:一个用于主机名的字符串对象 3、GetHostByAddress() 类似于GetHostByName(),只不过这里的参数是IP地址,而不是主机名,也返回一个IPHostEntry对象。 IPHostEntryGetHostByAddress(IPAddressaddress) IPHostEntryGetHostByAddress(stringaddress) 4、Resolve() 当我们不知道输入的远程
6、主机的地址是哪种格式(主机名或IP地址)时,用以上二种方法来实现,我们可能还要通过判断客户输入的格式,才能正确使用,但dns类提供一更简单的方法Resolve(),该方法可以接受主机名格式或IP地址格式的任何一种地址,并返回IPHostEntry对象。---------------------------------------------------------------------------------------------------------------------- 在上
7、一篇中,列了一些常用的方法,可以说这些是一些辅助性的方法,对于分析网络中的主机属性非常有用。在这篇中,将会介绍一下面向连接(TCP)socket编程,其中辅以实例,代码可供下载。 对于TCP的Socket编程,主要分二部分: 一、服务端Socket侦听: 服务端Socket侦听主要分以下几个步骤,按照以下几个步骤我们可以很方便的建立起一个Socket侦听服务,来侦听尝试连接到该服务器的客户Socket,从而建立起连接进行相关通讯。 1、创建IPEndPoint实例,用于S
8、ocket侦听时绑定1IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 6001); 2、创建套接字实例1//创建一个套接字2 serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 这里创建的时候用ProtocolType.Tcp,表示
此文档下载收益归作者所有