使用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++系统时间及字符串转换参考资料

    https://msdn.microsoft.com/en-us/library/a442x3ye.aspx https://msdn.microsoft.com/en-us/library/fe06 ...

  2. python之路----面向对象进阶二

    item系列 __getitem__\__setitem__\__delitem__ class Foo: def __init__(self,name,age,sex): self.name = n ...

  3. bzoj1647 / P1985 [USACO07OPEN]翻转棋

    P1985 [USACO07OPEN]翻转棋 其实我们只要枚举第一行的状态,后面的所有状态都是可以唯一确定的. 用二进制枚举灰常方便 #include<iostream> #include ...

  4. Python3 获取网络图片并且保存到本地

    Python3 获取网络图片并且保存到本地 import requests from bs4 import BeautifulSoup from urllib import request impor ...

  5. 关于linux中的上下文切换

    对于linux中的上下文一直以来没有特别的关注其合理范围应该是多少(关于上下文切换的概念,网上已经有很多解释了,再次不再重复),白天偶尔注意到了一下,晚上特地看了下白天负载和和收盘后的负载如下(服务器 ...

  6. 定制django admin页面的跳转

    在django admin的 change_view,  add_view和delete_view页面,如果想让页面完成操作后跳转到我们想去的url,该怎么做 默认django admin会跳转到ch ...

  7. ELK之logstash6.5

    首先安装,这里采用rpm安装: # rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 创建repo文件: [root@no ...

  8. 20145122《Java程序设计》第七周学习总结

    教材学习内容总结 1.在只有Lambda表达式的情况下,参数的类型必须写出来. 2.Lambda表达式本身是中性的,同样的Lambda表达式可用来表示不同目标类型的对象操作. 3.Lambda表达式只 ...

  9. RS(纠删码)技术浅析及Python实现

    前言 在Ceph和RAID存储领域,RS纠删码扮演着重要的角色,纠删码是经典的时间换空间的案例,通过更多的CPU计算,降低低频存储数据的存储空间占用. 纠删码原理 纠删码基于范德蒙德矩阵实现,核心公式 ...

  10. Python3基础 ** 幂运算 // 整除运算

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