使用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. 20145317《网络对抗》shellcode注入&Return-to-libc攻击深入

    20145317<网络对抗>shellcode注入&Return-to-libc攻击深入 学习任务 shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻 ...

  2. sql逻辑查询语句的执行顺序

    SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN ...

  3. 利用RNN(lstm)生成文本【转】

    本文转载自:https://www.jianshu.com/p/1a4f7f5b05ae 致谢以及参考 最近在做序列化标注项目,试着理解rnn的设计结构以及tensorflow中的具体实现方法.在知乎 ...

  4. bootstrap的 附加导航Affix导航 (侧边窄条式 滚动监控式导航) 附加导航使用3.

    affix: 意思是粘附, 附着, 沾上. 因此, 附加导航就是 bootstrap的 Affix.js组件. bootstrap的 附加导航, 不是说导航分成主导航, 或者什么 副导航的 而是指, ...

  5. POJ 1740 A New Stone Game(博弈)题解

    题意:有n个石子堆,每一个都可以轮流做如下操作:选一个石堆,移除至少1个石子,然后可以把这堆石子随便拿几次,随便放到任意的其他石子数不为0的石子堆,也可以不拿.不能操作败. 思路:我们先来证明,如果某 ...

  6. VS中 Winform查看窗体内控件之间的相互关系

    视图----其他窗口----文档大纲 这样可以查看之前的窗体布局关系

  7. C# SQLite数据库操作

    WinCE项目开发   VS2008 自己写的SQLite数据库管理类代码如下: SQLiteManager.cs using System.Data; using System.Data.SQLit ...

  8. HDU 2222 Keywords Search(AC自动机模板题)

    http://acm.hdu.edu.cn/showproblem.php?pid=2222 题意:给出多个单词,最后再给出一个模式串,求在该模式串中包含了多少个单词. 思路: AC自动机的模板题. ...

  9. ros 编译指定包

    一.编译到devel目录在工作空间下(有devel文件夹的那个目录)执行 catkin_make --pkg 包名 如果报错,执行catkin_make -DCATKIN_WHITELIST_PACK ...

  10. Java语言编写MD5加密方法,Jmeter如何给字符串MD5加密

    package md5package; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; ...