欢迎来到天天文库
浏览记录
ID:20680959
大小:1.05 MB
页数:31页
时间:2018-10-14
《第10章 c#网络通信编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章C#网络通信编程技术10.1网络通信的方式10.2Dns类10.3System.Net.Sockets命名空间10.4开发网络通信应用程序10.5综合应用10.1网络通信的方式(1)同步方式同步方式是指发送方发送数据包以后,不等接收方响应,就接着发送下一个数据包。(2)异步方式异步方式是指当发送方发送一个数据包以后,一直等到接收方响应后,才可以发送下一个数据包。(3)阻塞套接字阻塞套接字是指在执行此套接字的网络调用时,直到调用成功才返回,否则此套接字就一直阻塞在网络调用上。(4)非阻塞套接字非阻塞套接字是指在执行此套接字的网络调用时,不管是否执行成功,都立即返回。10.2Dns类Dn
2、s类的常用方法及说明如表10.1所示。方法名称说明BeginGetHostAddresses异步返回指定主机的Internet协议(IP)地址BeginGetHostEntry已重载。将主机名或IP地址异步解析为IPHostEntry实例EndGetHostAddresses结束对DNS信息的异步请求EndGetHostEntry结束对DNS信息的异步请求GetHostAddresses返回指定主机的Internet协议(IP)地址GetHostByAddress已重载。获取IP地址的DNS主机信息GetHostName获取本地计算机的主机名GetType获取当前实例的类型GetHostEn
3、try将主机名或IP地址解析为IPHostEntry实例表10.1Dns类的常用方法及说明10.2Dns类【例EX10_1】设计WinForm应用程序用于获取指定主机名的IP地址。设计步骤如下:(1)新建WinForm项目新建WinForm项目并命名为“EX10_1”。(2)添加控件并设置属性在Form1的设计视图中将此窗体调整到适当的大小并将“Text”属性设置为“获取主机IP地址”。从工具箱中拖曳1个Button、2个Label和2个TextBox控件到窗体中,如图10.1所示布局控件。将label1、label2和button1的Text属性值分别设置为“主机名”、“IP地址:”和“获
4、取”。(3)添加命名空间所要添加的命名空间为“usingSystem.Net;”。10.2Dns类(4)添加事件及代码双击“获取”按钮,其事件代码如下所示:privatevoidbutton1_Click(objectsender,EventArgse){textBox2.Text="";try{IPHostEntryhostInfo=Dns.GetHostEntry(textBox1.Text.Trim());foreach(IPAddressipaddinhostInfo.AddressList){textBox2.Text+=ipadd.ToString()+"r";}}catc
5、h(Exceptionex){MessageBox.Show(ex.Message.ToString());}}10.2Dns类(5)运行程序按“Ctrl+F5”组合键运行程序,分别输入“www.baidu.com”和“baidu.com”,单击“获取”按钮,结果如图10.1和图10.2所示。图10.1“www.baidu.com”的IP地址图10.2“baidu.com”的IP地址10.3System.Net.Sockets命名空间(1)Socket类:用于管理连接,实现Berkeley通信端接口,定义绑定、连接网络端点以及传输数据所需的方法,提供处理端点连接传输等细节所需要的功能。Web
6、Request、TcpClient和UdpClinet等类在内部使用这个类。(2)TcpClient类:允许创建和使用TCP连接,该类创建于Socket类的基础之上.并且封装了许多更高级的功能,避免开发人员处理连接操作的相关细节。(3)TcpListener类:允许监听传入的TCP连接请求,监听来自TCP客户端应用程序的连接要求,封装更高级的功能,使用这个类可以让用户避免处理一些连接服务的细节,以一种比较有效的方式,接收监听的连接需求。(4)UdpClinet类:提供用户数据报(UDP)网络服务。(5)NetWorkStream类:这个类是从Stream派生出来的,专门用以处理网络形式的数据
7、流,与其他文件数据流的显著区别在于,这个类接收Socket类对象参数,对网络数据进行存取操作。10.3.1套接字(Socket)应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)
此文档下载收益归作者所有