亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#的Windows窗體端口掃描程序分析

        2017-03-06 23:30:29沈?qū)m新
        軟件導(dǎo)刊 2017年1期
        關(guān)鍵詞:語(yǔ)言

        沈?qū)m新

        摘要摘要:C#語(yǔ)言一方面繼承了C 語(yǔ)言和C++ 語(yǔ)言簡(jiǎn)潔高效的優(yōu)點(diǎn),另一方面吸收了JAVA語(yǔ)言面向?qū)ο蟮脑O(shè)計(jì)思想,是目前主流的編程語(yǔ)言之一。C#語(yǔ)言可以高效便捷地開(kāi)發(fā)各種應(yīng)用程序,微軟公司提供了完備的類(lèi)庫(kù)以方便程序員開(kāi)發(fā)。在網(wǎng)絡(luò)開(kāi)發(fā)方面,端口掃描程序是網(wǎng)絡(luò)軟件常用的功能模塊。通過(guò)分析端口掃描程序中出現(xiàn)的問(wèn)題,找出問(wèn)題產(chǎn)生的原因,提出相應(yīng)解決辦法,對(duì)采用C#語(yǔ)言開(kāi)發(fā)類(lèi)似軟件有一定的參考作用。

        關(guān)鍵詞關(guān)鍵詞:C#語(yǔ)言;網(wǎng)絡(luò)軟件;端口掃描

        DOIDOI:10.11907/rjdk.162211

        中圖分類(lèi)號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2017)001003803

        0引言

        C#語(yǔ)言是目前主流的編程語(yǔ)言之一。它采用控件事件來(lái)綁定窗體方法,實(shí)現(xiàn)了消息的便捷傳遞,大大簡(jiǎn)化了窗體程序的編寫(xiě),使程序員可以專(zhuān)注于業(yè)務(wù)邏輯開(kāi)發(fā),不必花費(fèi)時(shí)間在消息路由上。本文采用C#語(yǔ)言實(shí)現(xiàn)一個(gè)具有WinForm窗體的端口掃描程序,并重點(diǎn)分析可能出現(xiàn)的幾個(gè)問(wèn)題,為開(kāi)發(fā)者提供參考。1端口掃描程序原理

        端口掃描作為網(wǎng)絡(luò)安全掃描的核心技術(shù)之一,廣泛應(yīng)用于網(wǎng)絡(luò)掃描器中,如著名的Namp和Nessus。在計(jì)算機(jī)中,一個(gè)端口就是一個(gè)潛在的通信通道,對(duì)目標(biāo)計(jì)算機(jī)進(jìn)行端口掃描,可使用戶了解本機(jī)對(duì)外界提供了哪些服務(wù),從而為管理網(wǎng)絡(luò)提供參考。

        端口掃描技術(shù)原理[1]:向目標(biāo)計(jì)算機(jī)的TCP/IP服務(wù)算法的基礎(chǔ)上加上T-BCJR的復(fù)雜度,而高信噪比時(shí),錯(cuò)誤幀數(shù)量少,此時(shí)的復(fù)雜度基本接近SOVA算法??傮w上,改進(jìn)譯碼算法的復(fù)雜度與SOVA算法相近。

        4結(jié)語(yǔ)

        連續(xù)相位調(diào)制是一種先進(jìn)的調(diào)制技術(shù),近年來(lái)在通信、遙感等領(lǐng)域得到廣泛重視。本文介紹了連續(xù)相位調(diào)制系統(tǒng)的主要譯碼算法,并針對(duì)算法的局限性在高斯白噪聲信道下給出了一種改進(jìn)的算法。通過(guò)仿真驗(yàn)證了該算法的可行性,當(dāng)誤比特率達(dá)到104時(shí),改進(jìn)譯碼的信噪比只比BCJR算法低0.15dB左右,復(fù)雜度也大大降低。

        斷服務(wù)端口是打開(kāi)還是關(guān)閉,得到端口提交的服務(wù)和信息。端口掃描的常見(jiàn)種類(lèi)有TCP SIN掃描、TCP Connect掃描、秘密掃描和其它掃描。掃描分類(lèi)如圖1所示。

        本文使用其中的TCP connect 掃描,它是最基本的TCP掃描。操作系統(tǒng)提供connect()系統(tǒng)調(diào)用,用來(lái)與每個(gè)感興趣的目標(biāo)計(jì)算機(jī)端口連接。如果端口處于偵聽(tīng)狀態(tài),那么connect()就能成功。否則,這個(gè)端口不能用,即沒(méi)有提供服務(wù)。這種技術(shù)最大的優(yōu)點(diǎn)是不需要任何權(quán)限,系統(tǒng)中的任何用戶都有權(quán)使用這個(gè)調(diào)用;另一個(gè)好處就是速度:如果對(duì)每個(gè)目標(biāo)端口以線性方式使用單獨(dú)的connect()調(diào)用,會(huì)花費(fèi)相當(dāng)長(zhǎng)的時(shí)間,而這里可以同時(shí)打開(kāi)多個(gè)套接字,從而加速掃描。

        2端口掃描程序設(shè)計(jì)

        本開(kāi)發(fā)除了系統(tǒng)提供的默認(rèn)命名空間和窗體命名空間外,還要用到和網(wǎng)絡(luò)開(kāi)發(fā)和線程開(kāi)發(fā)相關(guān)的命名空間。主要流程是在掃描窗體界面中設(shè)定目標(biāo)主機(jī)IP地址和掃描端口范圍[2-3],在主線程中啟動(dòng)多個(gè)線程來(lái)掃描端口。2.1命名空間和類(lèi)

        涉及的網(wǎng)絡(luò)相關(guān)命名空間包括System.net命名空間,要使用其中的IPAddress類(lèi)和IPEndPoint類(lèi)來(lái)構(gòu)建統(tǒng)一、簡(jiǎn)單的網(wǎng)絡(luò)編程接口。使用System.Net.Sockets命名空間中的Socket類(lèi)來(lái)實(shí)現(xiàn)Berkeley套接字。引用System.Threading命名空間,使用其中的Thread類(lèi)來(lái)實(shí)現(xiàn)多個(gè)線程同時(shí)掃描端口以加快掃描速度。2.2端口掃描程序流程

        啟動(dòng)多個(gè)線程,在線程中開(kāi)始掃描端口,掃描程序中設(shè)定的套接字,以目標(biāo)主機(jī)和端口為端點(diǎn)執(zhí)行TCP connect方法。執(zhí)行后,通過(guò)判斷套接字的Connected屬性來(lái)確定端口是否開(kāi)放。主要流程如圖2所示。

        3端口掃描程序中的問(wèn)題及分析

        對(duì)掃描程序進(jìn)行測(cè)試。首先在局域網(wǎng)IP地址為10.110.32.16的主機(jī)上開(kāi)放80端口,然后啟動(dòng)掃描程序,在目標(biāo)IP中填入10.110.32.16,端口選擇79到80端口,點(diǎn)擊開(kāi)始掃描。3.1掃描端口不能顯示

        盡管已經(jīng)開(kāi)放了80端口,可是掃描后并沒(méi)有發(fā)現(xiàn)該端口被寫(xiě)入相應(yīng)控件,但確實(shí)調(diào)用了Listbox控件的Items集合屬性的add方法并添加了具體的開(kāi)放端口。經(jīng)過(guò)分析,C#在UI線程創(chuàng)建子線程操作UI控件時(shí),也就是在UI 線程以外的子線程操作UI控件時(shí),系統(tǒng)引發(fā)了一個(gè)InvalidOperationException異常,因?yàn)樵L問(wèn) Windows 窗體控件本質(zhì)上不是安全線程。如果有兩個(gè)或多個(gè)線程操作某一控件,則可能會(huì)迫使該控件進(jìn)入一種不一致?tīng)顟B(tài),還可能出現(xiàn)其它與線程相關(guān)的錯(cuò)誤,包括爭(zhēng)用和死鎖。因此,確保以線程安全方式訪問(wèn)控件非常重要。解決這個(gè)問(wèn)題有3種方法[4-5]:

        (1)在窗體Load方法中設(shè)置CheckForIllegalCrossThreadCalls為false,不檢查交叉線程調(diào)用,直接忽視InvalidOperationException異常,此法不推薦使用。

        (2)利用委托來(lái)實(shí)現(xiàn)。在窗體函數(shù)中定義委托AppendStringDelegate,同時(shí)定義委托方法addString來(lái)觸發(fā)。把原來(lái)在線程中的通過(guò)控件添加的方法調(diào)用,修改為通過(guò)addString方法修改控件,以避免線程沖突,關(guān)鍵代碼如下:

        (3)通過(guò)使用 BackgroundWorker 組件實(shí)現(xiàn)多線程的交叉引用。BackgroundWorker組件非常適合在后臺(tái)運(yùn)行任務(wù)前臺(tái)顯示結(jié)果的應(yīng)用場(chǎng)景,而且提供了完善的取消工作、報(bào)告進(jìn)度和異常處理功能,解決了跨線程訪問(wèn)可視化組件問(wèn)題。輔助線程運(yùn)行 DoWork 事件處理程序,在掃描按鈕點(diǎn)擊事件中調(diào)用方法RunWorkerAsync完成后臺(tái)線程異步觸發(fā)。

        本文推薦使用第(2)或第(3)種方法來(lái)解決上述問(wèn)題。3.2掃描端口結(jié)果重復(fù)顯示

        采用上述委托處理線程訪問(wèn)UI中控件,發(fā)現(xiàn)在Listbox控件中掃描結(jié)果出現(xiàn)兩次“端口開(kāi)放80”字樣。端口掃描代碼在窗體類(lèi)中定義一個(gè)類(lèi)變量portnow,在掃描程序中通過(guò)一個(gè)for循環(huán)來(lái)啟動(dòng)多個(gè)線程,執(zhí)行從開(kāi)始端口到終止端口的掃描,在循環(huán)中將i值賦給portnow。因?yàn)閜ortnow是類(lèi)變量,在線程中根據(jù)portnow的值確定掃描端口,代碼看似沒(méi)有問(wèn)題,但經(jīng)過(guò)跟蹤分析,發(fā)現(xiàn)線程在執(zhí)行掃描79端口時(shí),UI主線程繼續(xù)執(zhí)行,并不會(huì)等待,此時(shí),i值修改為80,又啟動(dòng)下一個(gè)線程掃描80端口,而此時(shí)掃描79端口的線程也才剛剛為portnow賦值,因此出現(xiàn)了兩次都是連接80端口的情況。圖3中,通過(guò)跟蹤線程堆棧發(fā)現(xiàn),在切換掃描79號(hào)端口線程時(shí),UI線程繼續(xù)執(zhí)行,i值被修改,導(dǎo)致一開(kāi)始就執(zhí)行掃描79號(hào)端口,portnow值就變成80,造成重復(fù)連接80端口問(wèn)題。為了解決線程調(diào)用中portnow和所掃描端口不同步問(wèn)題,考慮把i值作為一個(gè)參數(shù)傳給線程,更簡(jiǎn)單的方法是直接把線程命名為i值。同時(shí),在掃描程序中通過(guò)下列代碼實(shí)現(xiàn)portnow同步獲?。?/p>

        4結(jié)語(yǔ)

        本文通過(guò)C#語(yǔ)言端口掃描程序設(shè)計(jì)與實(shí)現(xiàn),分析了程序中出現(xiàn)的問(wèn)題,對(duì)端口掃描結(jié)果不能出現(xiàn)、端口掃描結(jié)果重復(fù)出現(xiàn)問(wèn)題進(jìn)行了分析,提出了相應(yīng)的解決方法,提示C#編程者進(jìn)一步了解網(wǎng)絡(luò)編程中線程使用的注意要點(diǎn),避免發(fā)生線程使用不當(dāng)導(dǎo)致程序無(wú)法正常運(yùn)行,對(duì)類(lèi)似系統(tǒng)實(shí)現(xiàn)提供了有益的參考。

        參考文獻(xiàn):

        [1]譚逸逸.常見(jiàn)的端口掃描類(lèi)[EB/OL].http://360doc.com/content/12/0302/13/3725126_191092221.shtml.

        [2]陳青華.C#網(wǎng)絡(luò)開(kāi)發(fā)項(xiàng)目教程[M] .北京:電子工業(yè)出版社, 2012:91113.

        [3]馬駿.C#網(wǎng)絡(luò)應(yīng)用編程[M] 北京:人民郵電出版社, 2014:3848.

        [4]卜春芬. C#后臺(tái)處理與多線程技術(shù)的應(yīng)用[J]. 昆明學(xué)院學(xué)報(bào), 2010(3):1218.

        [5]周廣川.多線程應(yīng)用程序調(diào)試技術(shù)[J]. 現(xiàn)代計(jì)算機(jī):專(zhuān)業(yè)版, 2011(3):154156.

        [6]孫小平.網(wǎng)絡(luò)系統(tǒng)安全漏洞掃描淺析[J] .網(wǎng)絡(luò)安全技術(shù)與應(yīng)用, 2016(2):7880.

        責(zé)任編輯(責(zé)任編輯:杜能鋼)

        猜你喜歡
        語(yǔ)言
        詩(shī)之新,以語(yǔ)言創(chuàng)造為基
        (n,k)-語(yǔ)言及左-(n,k)-語(yǔ)言的一些性質(zhì)
        語(yǔ)言是刀
        文苑(2020年4期)2020-05-30 12:35:30
        讓語(yǔ)言描寫(xiě)搖曳多姿
        多向度交往對(duì)語(yǔ)言磨蝕的補(bǔ)正之道
        累積動(dòng)態(tài)分析下的同聲傳譯語(yǔ)言壓縮
        日常語(yǔ)言與播音語(yǔ)言
        新聞傳播(2016年10期)2016-09-26 12:15:04
        語(yǔ)言技能退化與語(yǔ)言瀕危
        我有我語(yǔ)言
        論語(yǔ)言的“得體”
        91青草久久久久久清纯| 又大又粗又爽18禁免费看| 国产成人亚洲精品无码h在线| 成人无码视频在线观看网站| 亚洲一区二区三区av天堂| 多毛小伙内射老太婆| 久久中文字幕亚洲综合| 凹凸国产熟女精品视频app| 野外性史欧美k8播放| 乱色视频中文字幕在线看| 国产精品综合女同人妖| 国产太嫩了在线观看| 大胆欧美熟妇xxbbwwbw高潮了| 国产美女被遭强高潮露开双腿| 男女动态91白浆视频| 日韩国产精品无码一区二区三区| 欧美在线三级艳情网站| 亚洲国产精品免费一区| 极品粉嫩小仙女高潮喷水操av| 亚洲av午夜福利精品一区二区 | 国产精品久久国产精麻豆99网站| 伊人久久五月丁香综合中文亚洲| 日本激情网址| 亚洲黄色精品在线播放| 精品久久久久久久久午夜福利| 77777亚洲午夜久久多人| 亚洲精品一品二品av| 亚洲最近中文字幕在线| 亚洲精品午夜无码电影网| 丝袜欧美视频首页在线| 久久婷婷综合色一区二区| 真实国产精品vr专区| 91热这里只有精品| 日本人妻系列一区二区| 国产精品久久久久久久久久红粉 | 亚洲国产精品无码久久久| 亚洲av成人一区二区三区av| 国产三级国产精品国产专区| 一二三四区中文字幕在线| 亚洲国产精品日韩av专区| 精精国产xxxx视频在线播放器|