• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-380  評論-37  文章-0  trackbacks-0

              
              

            剛接觸TCP/IP通信設(shè)計(jì)的人根據(jù)范例可以很快編出一個(gè)通信程
            序,據(jù)此一些人可能會認(rèn)為TCP/IP編程很簡單。其實(shí)不然,
            TCP/IP編程具有較為豐富的內(nèi)容。其編程的豐富性主要體現(xiàn)在
            通信方式和報(bào)文格式的多樣性上。


            一。通信方式

            主要有以下三大類:

            (一)SERVER/CLIENT方式

            1.一個(gè)Client方連接一個(gè)Server方,或稱點(diǎn)對點(diǎn)(peer to peer):
            2.多個(gè)Client方連接一個(gè)Server方,這也是通常的并發(fā)服務(wù)器方式。
            3.一個(gè)Client方連接多個(gè)Server方,這種方式很少見,主要
            用于一個(gè)客戶向多個(gè)服務(wù)器發(fā)送請求情況。


            (二)連接方式

            1.長連接

            Client方與Server方先建立通訊連接,連接建立后不斷開,
            然后再進(jìn)行報(bào)文發(fā)送和接收。這種方式下由于通訊連接一直
            存在,可以用下面命令查看連接是否建立:

            netstat –f inet|grep 端口號(如5678)。

            此種方式常用于點(diǎn)對點(diǎn)通訊。


            2.短連接

            Client方與Server每進(jìn)行一次報(bào)文收發(fā)交易時(shí)才進(jìn)行通訊連
            接,交易完畢后立即斷開連接。此種方式常用于一點(diǎn)對多點(diǎn)
            通訊,比如多個(gè)Client連接一個(gè)Server.


            (三)發(fā)送接收方式

            1.異步

            報(bào)文發(fā)送和接收是分開的,相互獨(dú)立的,互不影響。這種方
            式又分兩種情況:

            (1)異步雙工:接收和發(fā)送在同一個(gè)程序中,有兩個(gè)不同的
            子進(jìn)程分別負(fù)責(zé)發(fā)送和接收
            (2)異步單工:接收和發(fā)送是用兩個(gè)不同的程序來完成。

            2.同步

            報(bào)文發(fā)送和接收是同步進(jìn)行,既報(bào)文發(fā)送后等待接收返回報(bào)文。
            同步方式一般需要考慮超時(shí)問題,即報(bào)文發(fā)上去后不能無限等
            待,需要設(shè)定超時(shí)時(shí)間,超過該時(shí)間發(fā)送方不再等待讀返回報(bào)
            文,直接通知超時(shí)返回。 


            實(shí)際通信方式是這三類通信方式的組合。比如一般書上提供的
            TCP/IP范例程序大都是同步短連接的SERVER/CLIENT程序。有的
            組合是基本不用的,比較常用的有價(jià)值的組合是以下幾種:

            同步短連接Server/Client
            同步長連接Server/Client
            異步短連接Server/Client
            異步長連接雙工Server/Client
            異步長連接單工Server/Client

            其中異步長連接雙工是最為復(fù)雜的一種通信方式,有時(shí)候經(jīng)
            常會出現(xiàn)在不同銀行或不同城市之間的兩套系統(tǒng)之間的通信。
            比如金卡工程。由于這幾種通信方式比較固定,所以可以預(yù)
            先編制這幾種通信方式的模板程序。


            二.報(bào)文格式

            通信報(bào)文格式多樣性更多,相應(yīng)地就必須設(shè)計(jì)對應(yīng)的讀寫報(bào)文的接
            收和發(fā)送報(bào)文函數(shù)。

            (一)阻塞與非阻塞方式 

            1.非阻塞方式

            讀函數(shù)不停地進(jìn)行讀動作,如果沒有報(bào)文接收到,等待一段時(shí)間后
            超時(shí)返回,這種情況一般需要指定超時(shí)時(shí)間。

            2.阻塞方式

            如果沒有報(bào)文接收到,則讀函數(shù)一直處于等待狀態(tài),直到有報(bào)文到達(dá)。

             

            (二)循環(huán)讀寫方式
             

            1.一次直接讀寫報(bào)文

            在一次接收或發(fā)送報(bào)文動作中一次性不加分別地全部讀取或全部
            發(fā)送報(bào)文字節(jié)。

            2.不指定長度循環(huán)讀寫

            這一般發(fā)生在短連接進(jìn)程中,受網(wǎng)絡(luò)路由等限制,一次較長的報(bào)
            文可能在網(wǎng)絡(luò)傳輸過程中被分解成了好幾個(gè)包。一次讀取可能不
            能全部讀完一次報(bào)文,這就需要循環(huán)讀報(bào)文,直到讀完為止。

            3.帶長度報(bào)文頭循環(huán)讀寫

            這種情況一般是在長連接進(jìn)程中,由于在長連接中沒有條件能夠
            判斷循環(huán)讀寫什么時(shí)候結(jié)束,所以必須要加長度報(bào)文頭。讀函數(shù)
            先是讀取報(bào)文頭的長度,再根據(jù)這個(gè)長度去讀報(bào)文.實(shí)際情況中,
            報(bào)頭的碼制格式還經(jīng)常不一樣,如果是非ASCII碼的報(bào)文頭,還必須
            轉(zhuǎn)換成ASCII,常見的報(bào)文頭碼制有:
            (1)n個(gè)字節(jié)的ASCII碼
            (2)n個(gè)字節(jié)的BCD碼
            (3)n個(gè)字節(jié)的網(wǎng)絡(luò)整型碼

             

            以上是幾種比較典型的讀寫報(bào)文方式,可以與通信方式模板一起
            預(yù)先提供一些典型的API讀寫函數(shù)。當(dāng)然在實(shí)際問題中,可能還
            必須編寫與對方報(bào)文格式配套的讀寫API.

            在實(shí)際情況中,往往需要把我們自己的系統(tǒng)與別人的系統(tǒng)進(jìn)行連接,
            有了以上模板與API,可以說連接任何方式的通信程序都不存在問題。


            本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/wgl_suc102/archive/2008/01/23/2060828.aspx

            posted on 2010-03-24 11:32 小王 閱讀(3321) 評論(0)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)通訊
            久久精品国产99国产精品导航 | 国内精品久久久久久不卡影院| 无码国内精品久久人妻| 亚洲av成人无码久久精品| 久久精品国产一区二区三区日韩| 久久一区二区三区99| 久久水蜜桃亚洲av无码精品麻豆| 狠狠色婷婷综合天天久久丁香| 国产精品美女久久久久av爽| A级毛片无码久久精品免费| 狠狠色噜噜狠狠狠狠狠色综合久久| 日本加勒比久久精品| 久久精品中文字幕久久| 久久精品国产免费观看| 国产精品亚洲综合专区片高清久久久 | 亚洲精品乱码久久久久久中文字幕| 久久精品人人做人人爽电影| 中文精品久久久久人妻| 99久久精品免费看国产免费| av色综合久久天堂av色综合在| 18岁日韩内射颜射午夜久久成人 | 久久国产免费观看精品3| 人妻无码αv中文字幕久久琪琪布| 伊人久久大香线蕉精品| 国产精品99久久99久久久| 久久久久青草线蕉综合超碰| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲中文字幕无码久久精品1| 精品国产热久久久福利| 久久精品国产亚洲AV无码娇色| 国产激情久久久久久熟女老人| 一本一本久久a久久精品综合麻豆| 久久精品亚洲中文字幕无码麻豆| 99久久精品国产一区二区| 久久婷婷五月综合国产尤物app| 亚洲午夜无码AV毛片久久| 久久国产精品免费一区| 91亚洲国产成人久久精品| 久久99精品久久久久久久不卡| 99久久精品国内| 久久免费视频网站|