中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 手機與無線通信 > TCP/IP通信程序設(shè)計方式

        TCP/IP通信程序設(shè)計方式

        ——
        作者: 時間:2007-08-10 來源:電子產(chǎn)品世界 收藏

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

        一。通信方式

          主要有以下三大類:

          (一)SERVER/CLIENT方式

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

          (二)連接方式

          1.長連接

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

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

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

          2.短連接

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

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

          1.異步

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

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

          2.同步

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

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

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

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


        二.報文格式

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

          (一)阻塞與非阻塞方式 

          1.非阻塞方式

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

          2.阻塞方式

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


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

          1.一次直接讀寫報文

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

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

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

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

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

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

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

        tcp/ip相關(guān)文章:tcp/ip是什么


        數(shù)字通信相關(guān)文章:數(shù)字通信原理


        通信相關(guān)文章:通信原理




        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉