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 ...
随机推荐
- Python3基础 str + 字符串变量拼接
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- CF873B Balanced Substring
1到n内0,1个数相同的个数的最长字串 \(i>=j\) \[1的个数=0的个数\] \[sum[i]-sum[j-1]=i-(j-1) - (sum[i]-sum[j-1])\] 这里把\(( ...
- Atcoder Educational DP Contest
前面简单一点的题直接过吧. A 暴力DP B 怎么还是暴力DP C 还是暴力DP D 直接背包 E 这个背包不太一样了,这里有一个技巧,就是因为价值很小,所以直接对价值背包,求出来达到某一个权值最小的 ...
- LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci
题目链接 题目大意 $$F[i]=F[i-1]+F[i-2]\ (\ F[1]=1\ ,\ F[2]=1\ )$$ $$T[i]=F[1]+2F[2]+3F[3]+...+nF[n]$$ 求$T[n] ...
- C# 用Linq查询DataGridView行中的数据是否包含(各种操作)
http://blog.csdn.net/xht555/article/details/38685845 https://www.cnblogs.com/wuchao/archive/2012/12/ ...
- php能干什么?
什么是cookies 简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮 ...
- [不屈的复习] - 安装Java初始化环境
点WIN键->运行(或者使用win+r) 输入cmd命令输入java -version 注: -version是小写,不能使用大写,java后面有一个空格 配置成功后,会出现版本信息 java ...
- UVa 1151 买还是建
https://vjudge.net/problem/UVA-1151 题意: 平面上有n个点,你的任务是让所有n个点连通.为此,你可以新建一些边,费用等于两个端点的距离平方和.另外还有q个套餐可以购 ...
- os.environ() 说明
我们想要用Python获得一些有关系统的各种信息的时候就不得不想到os的environ,那这里面都具体包含了那些内容呢? 一.简介 对于官方的解释,environ是一个字符串所对应环境的映像对象.这是 ...
- Android本地广播
Android中使用的广播一般是系统全局广播,即发出的广播可以被其他任何应用程序接收到,并且我们也可以接收来自于其他任何应用程序的广播.这样就很容易会引起安全性的问题,比如说我们发送的一些携带关键性数 ...