如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
学习目的主要内容8.1TCP/IP协议和Socket网络中有成千上万台计算机,应允许任何两台计算机之间进行通信,为了区分不同的计算机,必须给每一台连网计算机一个唯一的编号,这个编号在TCP/IP协议中叫计算机的IP地址,它是一个32位二进制数,一般用四个十进制数表示,中间用点隔开,每个十进制数允许值为0-255(一个字节),例如,202.112.10.105,这种记录方法叫点数记法。一个计算机要和网络中其他计算机连接,必须有自己的IP地址。C#语言使用IPAddress类表示IP地址,用静态方法Parse可将IP地址字符串转换为IPAddress实例。例如:IPAddressip=IPAddress.Parse(“127.0.0.1”);//127.0.0.1表示本机IP地址IPAddress类提供了几个静态只读字段,其中字段Any表示本地系统所有可用的IP地址,字段Broadcast表示本地网络广播地址。Dns类提供了一系列静态的方法,其中GetHostAddresses方法获取指定主机的IP地址,返回一个IPAddress类型的数组。例如:IPAddress[]ip=Dns.GetHostAddresses("www.cctv.com");//获得CCTV网站的所有IP地址Dns类GetHostName方法,获取本机主机名。例如:stringhostname=Dns.GetHostName();IPAddress[]ip=Dns.GetHostAddresses(hostname);一台计算机上可能运行多个网络通信软件,它们的IP地址是相同的。为了访问IP地址相同的不同网络通信软件,可为运行的每个网络通信软件编号,这个编号叫端口号。IPEndPoint类包含了IP地址和端口信息,IPEndPoint类常用的构造函数publicIPEndPoint(IPAddress,int);//第一个参数指定IP地址,第二个参数指定端口号8.1.1套接字(Socket)套接字有两种不同的类型:一种是流套接字,又称面向连接的协议,如TCP;另一种是数据报套接字,又称无连接协议,例如UDP。网络连接,一旦建立了这种连接,就可以在设备之间可靠的传输数据,建立连接后数据以流的形式在被连接的两个计算机中运行程序间进行流动。这有些像打电话。基于流套接字的网络通信一般采用客户机/服务器模式。基于数据报套接字,采用不连接方式,两个计算机中运行程序间使用单个信息包进行数据传输,这种方式类似邮局,不保证数据包按照发送顺序传送,也可能丢失。Socket类的构造方法定义如下,其中,addressFamily参数指定Socket使用的寻址方案,socketType参数指定Socket的类型,protocolType参数指定Socket使用的协议。publicSocket(AddressFamilyaddressFamily,SocketTypesocketType,ProtocolTypeprotocolType);生成基于TCP协议的Socket类对象的例子如下:Sockets=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);一旦创建基于TCP协议连接的Socket类对象,在客户端将通过Connect方法连接到指定的服务器,通过Send/SendTo方法向远程服务器发送数据,通过Receive/ReceiveFrom从服务端接收数据;而在服务器端,需要使用Bind方法将Socket对象绑定到本地指定的IP地址和端口号,并通过Listen方法侦听该接口上的请求,当侦听到用户端的连接时,调用Accept完成连接的操作,创建新的Socket以处理传入的连接请求。使用完Socket后,使用Shutdown方法禁用Socket,并使用Close方法关闭Socket。生成基于UDP协议的Socket类对象的例子如下:Sockets=newSocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);由于UDP不存在固定连接,所以可直接使用SendTo方法发送数据,用ReceiveFrom方法接收数据,如不再使用Socket对象,用Shutdown方法禁用Socket对象,用Close方法关闭Socket对象。8.2基于TCP协议的Socket编程8.2.1TcpClient类构造函数TcpClient(IPEndPointiep):iep指定了客户端IP地址与端口号。当客户端主机有一个以上IP地址时,可使用此构造函数选择要使用的客户端主机IP地址。例如: