<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 10, comments - 4, trackbacks - 0, articles - 1

    轉:關于長連接和短連接

    Posted on 2007-12-10 10:35 yuyu 閱讀(3440) 評論(0)  編輯  收藏

    TCP/IP通信程序設計的豐富多樣性

     

    剛接觸TCP/IP通信設計的人根據范例可以很快編出一個通信程
    序,據此一些人可能會認為TCP/IP編程很簡單。其實不然,
    TCP/IP編程具有較為豐富的內容。其編程的豐富性主要體現在
    通信方式和報文格式的多樣性上。


    一。通信方式

    主要有以下三大類:

    (一)SERVER/CLIENT方式

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


    (二)連接方式

    1.長連接

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

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

    此種方式常用于點對點通訊。


    2.短連接

    Client方與Server每進行一次報文收發交易時才進行通訊連
    接,交易完畢后立即斷開連接。此種方式常用于一點對多點
    通訊,比如多個Client連接一個Server.


    (三)發送接收方式

    1.異步

    報文發送和接收是分開的,相互獨立的,互不影響。這種方
    式又分兩種情況:

    (1)異步雙工:接收和發送在同一個程序中,有兩個不同的
    子進程分別負責發送和接收
    (2)異步單工:接收和發送是用兩個不同的程序來完成。

    2.同步

    報文發送和接收是同步進行,既報文發送后等待接收返回報文。
    同步方式一般需要考慮超時問題,即報文發上去后不能無限等
    待,需要設定超時時間,超過該時間發送方不再等待讀返回報
    文,直接通知超時返回。 


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

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

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


    二.報文格式

    通信報文格式多樣性更多,相應地就必須設計對應的讀寫報文的接
    收和發送報文函數。

    (一)阻塞與非阻塞方式 

    1.非阻塞方式

    讀函數不停地進行讀動作,如果沒有報文接收到,等待一段時間后
    超時返回,這種情況一般需要指定超時時間。

    2.阻塞方式

    如果沒有報文接收到,則讀函數一直處于等待狀態,直到有報文到達。

     

    (二)循環讀寫方式
     

    1.一次直接讀寫報文

    在一次接收或發送報文動作中一次性不加分別地全部讀取或全部
    發送報文字節。

    2.不指定長度循環讀寫

    這一般發生在短連接進程中,受網絡路由等限制,一次較長的報
    文可能在網絡傳輸過程中被分解成了好幾個包。一次讀取可能不
    能全部讀完一次報文,這就需要循環讀報文,直到讀完為止。

    3.帶長度報文頭循環讀寫

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

     

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

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成人性生交大片免费看好| 亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片 | 日韩欧毛片免费视频| 噜噜噜亚洲色成人网站∨| 亚洲免费视频观看| 久久精品国产亚洲AV高清热| 成人爽a毛片免费| 国产亚洲婷婷香蕉久久精品 | 亚洲综合伊人制服丝袜美腿| 日本妇人成熟免费中文字幕| 亚洲精品福利你懂| 韩国日本好看电影免费看| 亚洲第一se情网站| 国产精品亚洲w码日韩中文| 中文无码日韩欧免费视频| 久久久久亚洲AV成人无码| 2021在线观看视频精品免费| 亚洲六月丁香六月婷婷蜜芽| 国内大片在线免费看| 特级av毛片免费观看| a级亚洲片精品久久久久久久| 中文字幕免费不卡二区| 67pao强力打造67194在线午夜亚洲| 在线永久免费的视频草莓| 亚洲日韩国产一区二区三区| 国产精品综合专区中文字幕免费播放| 国产亚洲精品xxx| 91免费福利精品国产| 亚洲色欲色欱wwW在线| 免费一级特黄特色大片在线| 国产精品高清免费网站| 久久综合亚洲色HEZYO社区| 国产无遮挡吃胸膜奶免费看 | 免费高清A级毛片在线播放| 国产成人亚洲综合无码精品 | 国产免费黄色大片| 日本免费电影一区二区| 亚洲色大成网站www永久男同| 亚洲国产精品日韩专区AV| 18女人腿打开无遮掩免费| 看免费毛片天天看|