网络编程基础(1)

四个基础类:1.Dns类,2.IPAddress类,3.IPEndPoint类,4.WebClient类

1.Dns类是一个静态类,它从Internet域名系统(DNS)检索关于特定主机的信息。

设计界面,然后是确定按钮的代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            if(textBox1.Text == string.Empty)
            {
                MessageBox.Show("请输入主机地址!");
            }
            else
            {
                textBox2.Text = String.Empty;
                //返回指定主机的Internet协议(IP)地址
                IPAddress[] ips = Dns.GetHostAddresses(textBox1.Text);
                foreach(IPAddress ip in ips)
                {
                    textBox2.Text = ip.ToString();
                }
                textBox3.Text = Dns.GetHostName();
                //根据指导的主机名获取DNS信息,GetHostByName已过时,用GetHostEntry代替
                textBox4.Text = Dns.GetHostEntry(Dns.GetHostName()).HostName;
            }
        }
        
    }

}

二:按F5运行,输入一个网址。如www.cnblogs.com,运行结果及界面如图


注:参考的是《C#从入门到精通(第3版)》第398页书中的例子

 

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

3.IPEndPoint类,IPEndPoint类包含运用程序连接到主机上的服务所需的主机和本地或远程端口信息。通过组合服务的主机IP地址和端口号,IPEndPoint类形成到服务的连接点,它主要用来将网络端点表示为IP地址和端口号。如:IPEndPoint IPEPoint = new IPEndPoint(IPAddress.Parse(192.168.1.97),80),其中IPAddress.Parse的作用是将IP字符串转换为实例;IPEPoint.Address.ToString()的值就是192.168.1.97,IPEPoint.Point的值为80。

4.WebClient类

WebClient类提供向URI标识的任何本地、Internet或Internet资源发送数据以及从这些资源接收数据的公共方法。有3个常用的方法:(1)DownloadData(2)DownloadFile(3)DownLoadString方法,分别是以Byte数组、文件、String形式下载指定的资源。以下是例子

创建Form1窗体,并添加相应组件,代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace Test
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = String.Empty;
            //实例化一个WebRequest对象
            WebRequest webrequest = WebRequest.Create(textBox1.Text);
            //设置用于对Internet资源请求进行身份验证的网络凭据
            webrequest.Credentials = CredentialCache.DefaultCredentials;
            //调用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;
            //调用WebRequest对象的GetResponse方法实例化一个WebResponse对象
            WebResponse webresponse = webrequest.GetResponse();
            //获取WebResponse响应的Internet资源的URI
            richTextBox1.Text += "\n响应请求的InternetURI: " + webresponse.ResponseUri;
            //调用WebResponse对象的GetResponseStream方法返回数据流
            //要用到Stream,必须包含System.IO;
            Stream stream = webresponse.GetResponseStream();
            //使用stream创建一个StreamReader流读取对象
            StreamReader sreader = new StreamReader(stream);
            //读取流中的内容,并显示在RichTextBox控件中
            richTextBox1.Text += "\n" + sreader.ReadToEnd();
            sreader.Close();
            stream.Close();
            webresponse.Close();
        }
        
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值