使用C#进行网络编程时,通常要用到:

          System. Net  命名空间、

          System. Net. Sockets  命名空间、

          System. Net. Mail  命名空间。

24.2.1 System. Net 命名空间及相关类的使用

      System. Net 命名空间为当前网络上使用的多种协议提供了简单的编程接口。

      它所包含的 WebRequest 类和 WebResponse 类形成了所谓的可插接式协议的基础。

      (插接式协议是网络服务的一种实现,它使用户能够开发出使用 Internet 资源的应用程序,而不必考

    虑各种不同协议的具体细节)

  1. Dns 类 ——静态类

      Dns 类从 Internet 域名系统(DNS)检索关于特定主机的信息。

      Dns 类中的常用方法及说明如下:

          GetHostAddresses ( )    返回指定主机的 IP 地址

          GetHostName ( )      获取本地计算机的主机名

      使用:

         IPAddress[]  ips = Dns.GetHostAddresses( textBox1.Text ) ;   //获取指定主机的 IP 地址

         foreach( IPAddress ip in ips )      //循环访问获得的 IP 地址

         {

           textBox2.Text = ip.ToString();    //将得到的 IP 地址显示在文本框中

         }

  2. IPAddress 类

      IPAddress 类包含计算机在 IP 网络上的地址,主要用来提供网际协议(IP)地址。

      常用属性:   Address 属性    网际协议地址

      常用方法:   Parse ( )      将 IP 地址字符串转换为 IPAddress 实例

  3. IPEndPoint 类

      IPEndPoint 类主要用来将网络端点表示为 IP 地址和端口号。

      常用属性:

          Address 属性    获取或设置终结点的 IP 地址

          Port 属性      获取或设置终结点的端口号

      使用:

        IPEndPoint  ipePoint = new IPEndPoint( IPAddress.Parse(textBox1.Text) , 80 ) ;  //实例化 IPEndPoint 类对象

        label2.Text = "IP 地址:" + ipePoint.Address.ToString() + "\n 端口号:"… //使用 IPEndPoint 类对象获取…

  4. WebClient 类

      WebClient 类提供向 URI标识的任何本地、Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法。

      常用属性:

          BaseAddress 属性    获取或设置 WebClient 发出请求的基 URI

          Encoding 属性        获取或设置用于上传和下载字符串的 Encoding

      使用:

          WebClient wclient = new WebClient();    //实例化 WebClient 类对象

          wclient.BaseAddress = textBox1.Text;    //设置 WebClient 的基 URI

          wclient.Encoding = Encoding.UTF8;      //指定下载字符串的编码方式

          wclient.Headers.Add ("Content-Type", "application/x-www…") ;    //为 WebClient 类对象添加标头

          Stream stream = wclient.OpenRead ( textBox1.Text ) ;      //

          StreamReader sreader = new StreamReader ( stream ) ;

          string str = string.Empty;

          while(( str = sreader.ReadLine() ) != null )

          {

            richTextBox1.Text += str + "\n";

          }

  5. WebRequest 类和 WebResponse 类

      WebRequest 类是 .NET Framework 的请求/相应模型的抽象基类,用于访问 Internet 数据

      (使用该请求/相应模型的应用程序可以用协议不可知的方式从 Internet 请求数据。 

      在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。)

      WebResponse 类也是抽象基类,应用程序可以使用 WebResponse 类(以协议不可知的方式)参与请求

    和响应事务,而从 WebResponse 类派生的协议类携带请求的详细信息。

      另外,需要注意的是,客户端应用程序不直接创建 WebResponse 对象,而是通过对 WebRequest 实例

    调用 GetResponse 方法来进行创建。

24.2 网络编程基础——System.Net 命名空间的更多相关文章

  1. 网络编程基础——System.Net.Socket 命名空间及相关类的使用

    System.Net.Socket 命名空间主要提供制作 Socket 网络应用程序的相关类.(Socket 类.TcpClient 类.TcpListener 类 和 UdpClient 类) 1. ...

  2. C#网络编程基础知识

    C#网络编程基础知识一 1.IPAddress类 用于表示一个IP地址.IPAddress默认构造函数 public IPAddress(long address);一般不用 其中Parse()方法最 ...

  3. Android 网络编程基础之简单聊天程序

    前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...

  4. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  5. python全栈开发从入门到放弃之socket网络编程基础

    网络编程基础 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务 ...

  6. 网络编程基础之C/S架构和TCP/IP协议

    一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网 ...

  7. 大数据学习笔记——Java篇之网络编程基础

    Java网络编程学习笔记 1. 网络编程基础知识 1.1 网络分层图 网络分层分为两种模型:OSI模型以及TCP/IP网络模型,前者模型分为7层,是一个理论的,参考的模型:后者为实际应用的模型,具体对 ...

  8. Linux网络编程基础API

    第5章 Linux网络编程基础API 探讨Linux网络编程基础API与内核中TCP/IP协议族之间的关系,并未后续章节提供编程基础.从3个方面讨论Linux网络API. socket地址API.so ...

  9. linux 网络编程 基础

    网络编程基础 套接字编程需要指定套接字地址作为参数,不同的协议族有不同的地址结构,比如以太网其结构为sockaddr_in. 通用套接字: struct sockaddr { sa_family_t ...

随机推荐

  1. jpeg exif

    公司项目需要在jpeg图片里面添加exif信息,同事完成了这部分代码:但是有些手机兼容性有问题: libexif 地址:http://libexif.sourceforge.net/ 注意相关资料来之 ...

  2. Python入门之os.walk()方法

    os.walk方法,主要用来遍历一个目录内各个子目录和子文件. os.walk(top, topdown=True, onerror=None, followlinks=False) 可以得到一个三元 ...

  3. Sybase 存储过程中IF的用法

    Sybase 存储过程中IF的用法 --@i_val 为参数 or @i_val is null then begin --执行内容 end; end if;

  4. 编译时错误之 error C2338: tuple_element index out of bounds

    part 1 编译器 vs2015 VC++. 完整的错误信息粘贴如下: d:\program files (x86)\microsoft visual studio 14.0\vc\include\ ...

  5. 20145317彭垚《网络对抗》Exp6 信息搜集与漏洞扫描

    20145317彭垚<网络对抗>Exp6 信息搜集与漏洞扫描 问题回答 1.哪些组织负责DNS,IP的管理? DNS域名服务器:绝大多数在欧洲和北美洲,中国仅拥有镜像服务器. 全球一共有5 ...

  6. Java8中数据流的使用

    Code: @Data @ToString @NoArgsConstructor @AllArgsConstructor public class Employee { private Integer ...

  7. 【安装防火墙】没有iptables时的解决办法

    一.检查iptables服务状态 首先检查iptables服务的状态 [root@woxplife ~]# service iptables status iptables: Firewall is ...

  8. 【自动化】基于Spark streaming的SQL服务实时自动化运维

    设计背景 spark thriftserver目前线上有10个实例,以往通过监控端口存活的方式很不准确,当出故障时进程不退出情况很多,而手动去查看日志再重启处理服务这个过程很低效,故设计利用Spark ...

  9. Linux——系统引导流程学习简单笔记

    开启电源: 固件 firmware(CMOS/BIOS) → POST 加电自检 对硬件就行检查 ↓ 自举程序 BootLoader(GRUB) → 载入内核 ↓ 载入内核 Kernel 1:驱动硬件 ...

  10. python 元组查找元素返回索引

    #create a tuple tuplex = tuple("index tuple") print(tuplex) #get index of the first item w ...