• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

        用異步方式解析域名

        用異步方式解析域名

        更新時間:2022-05-04 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

        C# NetWork Programming里面一個例子,通過異步的方式解析域名。主要是應用Dns類的BeginResolve(),和EndResolve()方法。此例子有一個問題就是當碰到解析不出來的域名時,不會調(diào)用AsyncCallback指定的函數(shù)。我加了幾句代碼,設定2秒鐘超時時間,超時的話,顯示超時。現(xiàn)在的問題是,超時后并沒有結束域名的解析。超過2秒鐘解析出的域名還會顯示到listBox中。而超時后想調(diào)用Dns.EndResolve()結束解析的話會拋出異常。

        有待研究。

        using System;
        using System.Drawing;
        using System.Collections;
        using System.ComponentModel;
        using System.Windows.Forms;
        using System.Data;
        using System.Net;
        using System.Threading;

        namespace NetWork
        {

        public class DnsResolver : System.Windows.Forms.Form
        {
        private System.Windows.Forms.Button btnResolve;
        private System.Windows.Forms.Button btnClear;
        private System.Windows.Forms.Button btnAbout;
        private System.Windows.Forms.ListBox lbResults;
        private System.Windows.Forms.TextBox txtHost;

        private System.ComponentModel.Container components = null;

        public DnsResolver()
        {
        InitializeComponent();
        }


        protected override void Dispose( bool disposing )
        {
        if( disposing )
        {
        if (components != null)
        {
        components.Dispose();
        }
        }
        base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// 設計器支持所需的方法 - 不要使用代碼編輯器修改
        /// 此方法的內(nèi)容。
        /// </summary>
        private void InitializeComponent()
        {
        this.btnResolve = new System.Windows.Forms.Button();
        this.txtHost = new System.Windows.Forms.TextBox();
        this.lbResults = new System.Windows.Forms.ListBox();
        this.btnClear = new System.Windows.Forms.Button();
        this.btnAbout = new System.Windows.Forms.Button();
        this.SuspendLayout();
        //
        // btnResolve
        //
        this.btnResolve.Location = new System.Drawing.Point(24, 64);
        this.btnResolve.Name = "btnResolve";
        this.btnResolve.TabIndex = 0;
        this.btnResolve.Text = "&Resolve";
        this.btnResolve.Click += new System.EventHandler(this.btnResolve_Click);
        //
        // txtHost
        //
        this.txtHost.Location = new System.Drawing.Point(8, 24);
        this.txtHost.Name = "txtHost";
        this.txtHost.Size = new System.Drawing.Size(160, 21);
        this.txtHost.TabIndex = 1;
        this.txtHost.Text = "";
        //
        // lbResults
        //
        this.lbResults.ItemHeight = 12;
        this.lbResults.Location = new System.Drawing.Point(176, 8);
        this.lbResults.Name = "lbResults";
        this.lbResults.Size = new System.Drawing.Size(296, 232);
        this.lbResults.TabIndex = 2;
        //
        // btnClear
        //
        this.btnClear.Location = new System.Drawing.Point(24, 112);
        this.btnClear.Name = "btnClear";
        this.btnClear.TabIndex = 3;
        this.btnClear.Text = "&Clear";
        this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
        //
        // btnAbout
        //
        this.btnAbout.Location = new System.Drawing.Point(24, 160);
        this.btnAbout.Name = "btnAbout";
        this.btnAbout.TabIndex = 4;
        this.btnAbout.Text = "&About...";
        this.btnAbout.Click += new System.EventHandler(this.btnAbout_Click);
        //
        // DnsResolver
        //
        this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
        this.ClientSize = new System.Drawing.Size(504, 253);
        this.Controls.AddRange(new System.Windows.Forms.Control[] {
        this.btnAbout,
        this.btnClear,
        this.lbResults,
        this.txtHost,
        this.btnResolve});
        this.Name = "DnsResolver";
        this.Text = "Dns Resolver";
        this.ResumeLayout(false);

        }
        #endregion

        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        [STAThread]
        static void Main()
        {
        Application.Run(new DnsResolver());
        }

        void DnsResolved(IAsyncResult ar)
        {
        IPHostEntry entry=Dns.EndResolve(ar);

        foreach(IPAddress ip in entry.AddressList)
        {
        lbResults.Items.Add("address: "+ip.ToString());
        }

        foreach(string alias in entry.Aliases)
        {
        lbResults.Items.Add("alias: "+alias.ToString());
        }

        lbResults.Items.Add("resolve done.");
        }



        private void btnResolve_Click(object sender, System.EventArgs e)
        {
        if( txtHost.Text=="" ) return;

        lbResults.Items.Add("resolve beginning...");
        IAsyncResult ar=Dns.BeginResolve(txtHost.Text,new AsyncCallback(DnsResolved),null);
        if (!ar.AsyncWaitHandle.WaitOne(2000,false))
        {
        lbResults.Items.Add("two seconds elapsed, failed");
        }
        }

        private void btnClear_Click(object sender, System.EventArgs e)
        {
        lbResults.Items.Clear();
        }

        private void btnAbout_Click(object sender, System.EventArgs e)
        {
        string str="a tool to get the addresses & aliases of a host\n"
        +"by xuhx\n"
        +"email:xuhx20@hotmail.com/xuhx2012@sina.com";
        MessageBox.Show(str,this.Text,MessageBoxButtons.OK,MessageBoxIcon.Information);
        }
        }
        }

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲黄色网址大全| 97青青草原国产免费观看| 在线看片v免费观看视频777| 日本免费大黄在线观看| 亚洲午夜福利AV一区二区无码 | 久久久久av无码免费网| 亚洲国产天堂久久综合网站 | 亚洲免费日韩无码系列| 亚洲日本在线观看视频| 亚洲精品线在线观看| 99国产精品视频免费观看| 亚洲精品无码久久久久久久 | 在线观看免费av网站| 精品亚洲aⅴ在线观看| 亚洲三级高清免费| 亚洲熟妇av一区二区三区漫画| 国产精品免费久久久久影院| 国产精品亚洲A∨天堂不卡| 99国产精品视频免费观看| 亚洲人成在线中文字幕| 免费无码av片在线观看| 国产免费观看a大片的网站| 处破女第一次亚洲18分钟| 中文字幕中韩乱码亚洲大片| 国产精品免费一区二区三区四区| 免费一区二区三区四区五区 | 曰批免费视频播放在线看片二 | 国产亚洲人成无码网在线观看| 国产精品99久久免费观看| 国产成人精品日本亚洲直接| 国产又黄又爽又猛的免费视频播放| 一区二区3区免费视频| 毛片免费视频播放| 精品特级一级毛片免费观看| 成人毛片手机版免费看| 无码的免费不卡毛片视频| 亚洲电影免费在线观看| 久久久久免费精品国产小说| 国产精品亚洲成在人线| 日韩吃奶摸下AA片免费观看| 一区二区三区精品高清视频免费在线播放|