使用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. c++第十七天

    p101~p104: 1.数组中的元素个数也属于数组类型的一部分. 2.编译的时候数组的维度应该是已知的,也就是说维度必须是 const expression 3.const expression 是 ...

  2. noip 2013 提高组 Day2 部分题解

    积木大赛: 之前没有仔细地想,然后就直接暴力一点(骗点分),去扫每一高度,连到一起的个数,于是2组超时 先把暴力程序贴上来(可以当对拍机) #include<iostream> #incl ...

  3. 不是最强大的vimrc

    一直都是使用vim作为我的主要编辑器,它大大提高了我的代码编辑效率.vim的配置高度灵活.插件丰富,恐怕100个人就有99种配置方法,网上关于vim配置的所谓“最强大的vimrc”之类的文章不少,博人 ...

  4. JRebel for IntelliJ 热部署破解方法

    1.打开idea,然后打开设置. 2.点击Plugins 3.重启之后点击 4.下载激活JRebel的插件,下载地址:https://github.com/ilanyu/ReverseProxy/re ...

  5. vs2012旗舰版 有效注册密钥

    Microsoft Visual Studio Ultimate 2012 旗舰版 有效注册密钥: YKCW6-BPFPF-BT8C9-7DCTH-QXGWC

  6. Python3基础 函数 收集参数(tuple)+普通参数 的示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. git如何列出分支之间的差异commit

    答:使用git log master..diff_master 这样就可以列出在diff_master分支中包含的commit而在master分支中不包含的commit

  8. ubuntu下进程kidle_inject致使编译软件很慢

    一.背景 某一天编译一个程序发现半天都没编译ok,于是使用top一看发现有个别进程占用cpu奇高,遂出此文 二.怎么解决? 2.1 什么进程占据很高cpu 名为kidle_inject,同时开启了好几 ...

  9. TeeChart缩放

    //缩放的技巧 //首先找到待缩放的区域,例如横轴x1-x2,纵轴y1-y2 //那么待放到的区域就是x=x1;x=x2;y=y1;y=y2;这四条线组成的矩形 //首先确定矩形的左上角的坐标,然后确 ...

  10. Java 多线程查找文件中的内容

    学过了操作系统,突然不知道多线程有什么用了. 看了一下百度,发现多线程,可以提升系统利用率 在系统进行IO操作的时候,CPU可以处理一些其他的东西,等IO读取到内存后,CPU再处理之前的操作. 总之可 ...