网络编程 :System.Net概述(1)

Net Ftamework的System.Net 命名空间为各种网络协议提供了简单的编程接口,并且封装了很多用于通信的,这里简单的介绍几个比较重要的类

IPAddress类:

作用提供对IP地址的转化,处理的功能,该类提供的Parse方法可以将IP地址字符串转化为IPAddress实例
如:

IPAddress ip = IPAddress.Parse("192.168.1.1");

DNS类

DNS类实现的功能是对域名的解析,即把主机域名解析成为IP地址,或者吧IP地址解析成为主机名,常用方法如下:
1.GetHostAddress();该方法能够提取指定的主机的IP地址,返回一个IPAddress类型的数组

IPAddress[] i = Dns.GetHostAddresses("www.cctv.com");

2.GetHostName();该方法返回的是主机名

 string name = Dns.GetHostName();//获取主机名

IPHostEntry类

这个类包含了Internet主机的相关信息,常用的属性有两个,一个是AddressList,另一个是HostName,其中前一个的作用是获得或者设置与主机相关联的IP列表,这是一个Address类型的数组,包含了指定主机在内的所有IP地址,而HostName则半酣了服务器的主机名字

IPEndpoint类

在Interent中,Tcp/Ip使用一个IP地址和一个端口号来唯一标识设备和服务,IP地址表示网络上设备,端口号标识特定的服务,而Ip地址与端口号的组合称为端点,我们使用IPEndPoint的实例来标识这个端点,他包含了应用程序链接到主机上的服务所需的Ip地址和端口信息
方法Public IPEndPoint(IPAddress,int)

Demo:
在Window窗体上创建三个Button,一个Label,一个txtbox,一个listbox
重新设置名称与位置如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
分别为button设置点击事件

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 WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnResult_Click(object sender, EventArgs e)
        {
            lstResult.Items.Clear();
            string name = Dns.GetHostName();//获取主机名
            lstResult.Items.Add("name" + name);//显示
            IPHostEntry me = Dns.GetHostEntry(name);//获取IP地址,需要主机名
            lstResult.Items.Add("本机所有IP地址:");//IPHostEntry me = Dns.GetHostEntry(name);所获取的IP是一个组
            //所以在输出的时候遍历输出
            foreach (IPAddress ip in me.AddressList)
            {
                lstResult.Items.Add(ip);//显示本机所有的IP地址
            }
        }

        private void btnRemote_Click(object sender, EventArgs e)//点击获得服务器的信息,需要用DNS来解析
        {
            lstResult.Items.Clear();
            IPHostEntry host = Dns.GetHostEntry(txtRemote.Text);
            IPAddress[] rip = host.AddressList;
            lstResult.Items.Add(host.HostName);//获取主机的DNS名
            lstResult.Items.AddRange(rip);//向列表中添加对象数组,类似于显示

        }

        private void btnEndPoint_Click(object sender, EventArgs e)
        {
            lstResult.Items.Clear();
            IPAddress ip = IPAddress.Parse("127.0.0.1");//将字符串解析为IP地址
            IPEndPoint p = new IPEndPoint(ip, 80);//创建通信端点
            lstResult.Items.Add("TCP端点是:"+p.ToString());
            lstResult.Items.Add("该端点的IP地址是"+p.Address);
            lstResult.Items.Add("该端点的IP地址族是:"+p.AddressFamily);
            lstResult.Items.Add("Tcp的最大端口号是:"+IPEndPoint.MaxPort);
            lstResult.Items.Add("TCP的最小端口号是:"+IPEndPoint.MinPort);
            
        }
    }
}

效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了67 篇原创文章 · 获赞 3 · 访问量 1912

猜你喜欢

转载自blog.csdn.net/lfanyize/article/details/103036917