24.2 网络编程基础——System.Net 命名空间
使用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 命名空间的更多相关文章
- 网络编程基础——System.Net.Socket 命名空间及相关类的使用
System.Net.Socket 命名空间主要提供制作 Socket 网络应用程序的相关类.(Socket 类.TcpClient 类.TcpListener 类 和 UdpClient 类) 1. ...
- C#网络编程基础知识
C#网络编程基础知识一 1.IPAddress类 用于表示一个IP地址.IPAddress默认构造函数 public IPAddress(long address);一般不用 其中Parse()方法最 ...
- Android 网络编程基础之简单聊天程序
前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...
- Java网络编程和NIO详解开篇:Java网络编程基础
Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...
- python全栈开发从入门到放弃之socket网络编程基础
网络编程基础 一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务 ...
- 网络编程基础之C/S架构和TCP/IP协议
一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网 ...
- 大数据学习笔记——Java篇之网络编程基础
Java网络编程学习笔记 1. 网络编程基础知识 1.1 网络分层图 网络分层分为两种模型:OSI模型以及TCP/IP网络模型,前者模型分为7层,是一个理论的,参考的模型:后者为实际应用的模型,具体对 ...
- Linux网络编程基础API
第5章 Linux网络编程基础API 探讨Linux网络编程基础API与内核中TCP/IP协议族之间的关系,并未后续章节提供编程基础.从3个方面讨论Linux网络API. socket地址API.so ...
- linux 网络编程 基础
网络编程基础 套接字编程需要指定套接字地址作为参数,不同的协议族有不同的地址结构,比如以太网其结构为sockaddr_in. 通用套接字: struct sockaddr { sa_family_t ...
随机推荐
- 20145317《网络对抗》shellcode注入&Return-to-libc攻击深入
20145317<网络对抗>shellcode注入&Return-to-libc攻击深入 学习任务 shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻 ...
- sql逻辑查询语句的执行顺序
SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN ...
- 利用RNN(lstm)生成文本【转】
本文转载自:https://www.jianshu.com/p/1a4f7f5b05ae 致谢以及参考 最近在做序列化标注项目,试着理解rnn的设计结构以及tensorflow中的具体实现方法.在知乎 ...
- bootstrap的 附加导航Affix导航 (侧边窄条式 滚动监控式导航) 附加导航使用3.
affix: 意思是粘附, 附着, 沾上. 因此, 附加导航就是 bootstrap的 Affix.js组件. bootstrap的 附加导航, 不是说导航分成主导航, 或者什么 副导航的 而是指, ...
- POJ 1740 A New Stone Game(博弈)题解
题意:有n个石子堆,每一个都可以轮流做如下操作:选一个石堆,移除至少1个石子,然后可以把这堆石子随便拿几次,随便放到任意的其他石子数不为0的石子堆,也可以不拿.不能操作败. 思路:我们先来证明,如果某 ...
- VS中 Winform查看窗体内控件之间的相互关系
视图----其他窗口----文档大纲 这样可以查看之前的窗体布局关系
- C# SQLite数据库操作
WinCE项目开发 VS2008 自己写的SQLite数据库管理类代码如下: SQLiteManager.cs using System.Data; using System.Data.SQLit ...
- HDU 2222 Keywords Search(AC自动机模板题)
http://acm.hdu.edu.cn/showproblem.php?pid=2222 题意:给出多个单词,最后再给出一个模式串,求在该模式串中包含了多少个单词. 思路: AC自动机的模板题. ...
- ros 编译指定包
一.编译到devel目录在工作空间下(有devel文件夹的那个目录)执行 catkin_make --pkg 包名 如果报错,执行catkin_make -DCATKIN_WHITELIST_PACK ...
- Java语言编写MD5加密方法,Jmeter如何给字符串MD5加密
package md5package; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; ...