网络编程技术

原文来源:《C#从入门到精通》

1、System.Net命名空间

System.Net命名空间为当前网络上使用的多种协议提供了简单的编程接口,而它所包含的WebRequest类和WebResponse类形成了所谓的可插接式协议的基础。可插接式协议网络服务的一种实现,它使用户能够开发出使用Internet资源的应用程序,而不必考虑各种不同协议的具体细节。

1、Dns类

Dns类是一个静态类,它从Internet域名系统(DNS)检索关于特定主机的信息。在IPHostEntry类的实例中返回来自DNS查询的主机信息。如果指定的主机在DNS数据库中有多个入口,则IPHostEntry包含多个IP地址和别名。

private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == string.Empty)
    {
        MessageBox.Show("请输入主机地址!");
    }
    else
    {
        textBox2.Text = string.Empty;
        IPAddress[] ips = Dns.GetHostAddresses(textBox1.Text); //获取指定主机的IP地址
        foreach (IPAddress ip in ips)                          //循环访问获得的IP地址
        {
            textBox2.Text = ip.ToString();                     //将得到的IP地址显示在文本框中
        }
        textBox3.Text = Dns.GetHostName();                     //获取主机名
        textBox4.Text = Dns.GetHostByName(Dns.GetHostName()).HostName;
    }
}

2、IPAddress类
IPAddress类包含计算机在IP网络上的地址,它主要用来提供网际协议(IP)地址。

3、IPEndPoint类

private void button1_Click(object sender, EventArgs e)
{
    //实例化IPEndPoint类对象
    IPEndPoint IPEPoint = new IPEndPoint(IPAddress.Parse(textBox1.Text), 80);
    //使用IPEndPoint类对象获取终结点的IP地址和端口号
    textBox2.Text = "IP地址:" + IPEPoint.Address.ToString() + "\n端口号:" + IPEPoint.Port;
}

4、WebClient类

private void button1_Click(object sender, EventArgs e)
{
    richTextBox1.Text = string.Empty;
    WebClient wclient = new WebClient();                  //实例化WebClient类对象
    wclient.BaseAddress = textBox1.Text;                  //设置WebClient的基URI
    wclient.Encoding = Encoding.UTF8;                     //指定下载字符串的编码方式
    //为WebClient类对象添加报头
    wclient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    //使用OpenRead方法获取指定网站的数据,并保存到Stream流中
    Stream stream = wclient.OpenRead(textBox1.Text);
    //使用流StreamReader声明一个流读取变量sreader
    StreamReader sreader = new StreamReader(stream);
    string str = string.Empty;//声明一个变量,用来保存一行从WebClient下载的数据
    //循环读取从指定网站获得的数据
    while ((str = sreader.ReadLine()) != null)
    {
        richTextBox1.Text = str + "\n";
    }
    //调用WebClient对象的DownloadFile方法将指定网站的内容保存到文件中
    wclient.DownloadFile(textBox1.Text, DateTime.Now.ToFileTime() + ".txt");
    MessageBox.Show("保存到文件成功");
}

5、WebRequest类和WebResponse类

WebRequest类是.NET Framework的请求/响应模型的抽象基类,用于访问Internet数据。使用该请求/响应模型的应用程序可以用协议不可知的方式从Internet请求数据。

说明:客户端应用程序不直接创建WebResponse对象,而是通过对WebRequest实例调用GetResponse方法来进行创建。

private void button1_Click(object sender, EventArgs e)
{
    richTextBox1.Text = string.Empty;
    //1、实例化一个WebRequest对象
    WebRequest webrequest = WebRequest.Create(textBox1.Text);
    //2、设置用于对Internet资源请求进行身份验证的网络凭据
    webrequest.Credentials = CredentialCache.DefaultCredentials;
    //3、调用WebRequest对象的各种属性获取WebRequest请求的相关信息
    richTextBox1.Text = "请求数据的内容长度:" + webrequest.ContentLength;
    richTextBox1.Text += "\n 该请求的协议方法:" + webrequest.Method;
    richTextBox1.Text += "\n 访问Internet的网络代理:" + webrequest.Proxy;
    richTextBox1.Text += "\n 与该请求关联的Internet URI:" + webrequest.RequestUri;
    richTextBox1.Text += "\n 超时时间:" + webrequest.Timeout;
    //4、调用WebRequest对象的GetResponse方法实例化一个WebResponse对象
    WebResponse webresponse = webrequest.GetResponse();
    //5、获取WebResponse响应的Internet资源的URI
    richTextBox1.Text += "\n响应该请求的Internet URI:" + webresponse.ResponseUri;
    //6、调用WebResponse对象的GetResponseStream方法返回数据流
    Stream stream = webresponse.GetResponseStream();
    //7、使用创建的Stream对象创建一个StreamReader流读取对象
    StreamReader sreader = new StreamReader(stream);
    //8、读取流中的内容,并显示在RichTextBox控件中
    richTextBox1.Text = "\n" + sreader.ReadToEnd();
    sreader.Close();
    stream.Close();
    webresponse.Close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值