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

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

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

    無(wú)為

    無(wú)為則可為,無(wú)為則至深!

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    [摘要]

        本文介紹了網(wǎng)絡(luò)通訊中通用的傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)包協(xié)議(UDP),并
    且利用Java語(yǔ)言設(shè)計(jì)了一個(gè)簡(jiǎn)單的基于UDP 數(shù)據(jù)廣播的局域網(wǎng)絡(luò)會(huì)議程序,展示了
    在Java語(yǔ)言中進(jìn)行UDP 數(shù)據(jù)發(fā)送和接收的一般步驟。由于Java語(yǔ)言卓越的跨平臺(tái)特
    性,本系統(tǒng)能夠不加修改的運(yùn)行在Windows, Linux, Mac OS等一系列不同平臺(tái)上。


    [介紹]

        隨著網(wǎng)絡(luò)技術(shù)的普及,網(wǎng)絡(luò)會(huì)議在公司、企業(yè)和單位中的應(yīng)用也越來(lái)越廣。一
    個(gè)網(wǎng)絡(luò)會(huì)議系統(tǒng)通常包括一個(gè)服務(wù)器程序和一個(gè)客戶端程序。其中服務(wù)器端負(fù)責(zé)進(jìn)
    行用戶管理、信息交互以及表決統(tǒng)計(jì);客戶端則實(shí)現(xiàn)收聽(tīng)發(fā)言,公開(kāi)發(fā)言,私下討
    論、投票表決等功能。在一個(gè)網(wǎng)絡(luò)會(huì)議系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)中,通常涉及到圖形用戶
    界面設(shè)計(jì),TCP/IP連接,UDP 數(shù)據(jù)廣播,多線程等一系列技術(shù)。本文通過(guò)一個(gè)簡(jiǎn)單
    示例程序,展示了在Java語(yǔ)言中進(jìn)行UDP 數(shù)據(jù)發(fā)送和接收的一般步驟以及UDP 數(shù)據(jù)
    廣播在局域網(wǎng)絡(luò)會(huì)議系統(tǒng)中的作用。

        TCP (Transmission Control Protocol,傳輸控制協(xié)議) 是一種基于連接的通
    訊協(xié)議。當(dāng)兩臺(tái)計(jì)算機(jī)之間需要進(jìn)行可靠的數(shù)據(jù)傳輸時(shí),它們通過(guò)網(wǎng)絡(luò)建立起一個(gè)
    穩(wěn)定的連接,這種連接通常也被稱為數(shù)據(jù)鏈。與電話網(wǎng)絡(luò)相類(lèi)似,這種數(shù)據(jù)鏈?zhǔn)屈c(diǎn)
    對(duì)點(diǎn)的,通訊的雙方則通過(guò)這條數(shù)據(jù)鏈來(lái)回傳輸數(shù)據(jù)。在這條穩(wěn)定的數(shù)據(jù)鏈的基礎(chǔ)
    上,TCP 協(xié)議通過(guò)信息校驗(yàn)?zāi)軌虮WC接收方所接收到的數(shù)據(jù)和發(fā)送方所發(fā)送的數(shù)據(jù)
    在內(nèi)容和順序上是完全一致的,從而實(shí)現(xiàn)了數(shù)據(jù)的可靠傳輸。

        UDP (User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)與TCP 協(xié)議之間的不同在于
    UDP 不是一種基于穩(wěn)定連接的通訊協(xié)議。UDP 協(xié)議將獨(dú)立的數(shù)據(jù)包從一臺(tái)計(jì)算機(jī)傳
    輸?shù)搅硗庖慌_(tái)計(jì)算機(jī),但是并不保證接受方能夠接收到該數(shù)據(jù)包,也不保證接收方
    所接收到的數(shù)據(jù)和發(fā)送方所發(fā)送的數(shù)據(jù)在內(nèi)容和順序上是完全一致的。因此,UDP
    協(xié)議更類(lèi)似于普通郵政服務(wù),寄信人不能夠保證所寄出去的信能夠被收信人及時(shí)收
    到,后發(fā)出的信也許會(huì)比先發(fā)出的信更早到達(dá)。

        對(duì)于很多應(yīng)用程序來(lái)說(shuō),在互相通訊的兩臺(tái)計(jì)算機(jī)之間保證一個(gè)可靠與穩(wěn)定的
    數(shù)據(jù)鏈?zhǔn)侵陵P(guān)重要的。在這種情況下,就應(yīng)該首先考慮使用TCP 協(xié)議在涼臺(tái)計(jì)算機(jī)
    之間建立起TCP/IP連接。在HTTP (Hyper-Text Transfer Protocol,超級(jí)文本傳輸
    協(xié)議)、FTP (File Transfer Protocol, 文件傳輸協(xié)議)以及TELNET 應(yīng)用程序中,
    均要求在通訊的雙方之間建立起穩(wěn)定可靠的數(shù)據(jù)鏈,因此它們都使用了TCP 協(xié)議來(lái)
    進(jìn)行數(shù)據(jù)傳輸。

        在TCP 協(xié)議中,發(fā)送方和接收方必須交換額外的信息以保證接收方已經(jīng)接收到
    所發(fā)送的數(shù)據(jù)包并且所接收到的數(shù)據(jù)和發(fā)送方所發(fā)送的數(shù)據(jù)在內(nèi)容和順序上是完全
    一致的。這些額外的信息交換提高了數(shù)據(jù)傳輸?shù)目煽慷龋且步o網(wǎng)絡(luò)帶來(lái)了額外
    的負(fù)擔(dān),導(dǎo)致數(shù)據(jù)交換的延遲,從而降低了整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)交換能力。對(duì)于某些對(duì)
    實(shí)時(shí)性要求較高的應(yīng)用程序來(lái)說(shuō),這樣的延遲有可能是不可接受的。例如一個(gè)毫秒
    級(jí)的時(shí)鐘服務(wù)器按照一定的頻率向客戶機(jī)提供當(dāng)時(shí)的時(shí)間數(shù)據(jù),如果這些時(shí)間數(shù)據(jù)
    在傳輸過(guò)程中受到了較大的延遲,這些過(guò)時(shí)的時(shí)間數(shù)據(jù)是完全沒(méi)有意義的,即使客
    戶機(jī)準(zhǔn)確無(wú)誤的接收到了這些數(shù)據(jù)。相反,如果客戶機(jī)所接收到的每一個(gè)數(shù)據(jù)包都
    是實(shí)時(shí)的,那么即使客戶機(jī)錯(cuò)過(guò)了一兩個(gè)數(shù)據(jù)包也是可以接受的,因?yàn)樗偸强梢?BR>根據(jù)后面所接收到的數(shù)據(jù)包來(lái)對(duì)自己進(jìn)行校正。因此,對(duì)于對(duì)實(shí)時(shí)性要求比較高但
    是對(duì)傳輸可靠度要求比較低的應(yīng)用程序來(lái)說(shuō),UDP 協(xié)議顯然是一個(gè)合適的選擇。

        在通用的以太網(wǎng)(Ehternet)構(gòu)架下,計(jì)算機(jī)于計(jì)算機(jī)之間的數(shù)據(jù)交換都是通過(guò)
    交換機(jī)來(lái)完成的。如果一份數(shù)據(jù)需要被傳送給多個(gè)接收者,在使用TCP/IP連接的情
    況下,數(shù)據(jù)發(fā)送者需要向交換機(jī)發(fā)送N 個(gè)同樣的拷貝,而交換機(jī)則負(fù)責(zé)將這N 個(gè)拷
    貝分發(fā)給所有的接收者;在使用UDP 數(shù)據(jù)廣播的情況下,數(shù)據(jù)發(fā)送者只需要向交換
    機(jī)發(fā)送一個(gè)拷貝,交換機(jī)負(fù)責(zé)將這個(gè)信息制作N 個(gè)拷貝發(fā)送給所有的機(jī)器。在這種
    情況下,使用TCP/IP連接會(huì)大大的增加網(wǎng)絡(luò)的負(fù)擔(dān)。在一個(gè)普通局域網(wǎng)絡(luò)中,可以
    認(rèn)為由于網(wǎng)絡(luò)狀況較差而造成數(shù)據(jù)丟失的可能性比較小,而利用UDP 數(shù)據(jù)廣播進(jìn)行
    數(shù)據(jù)交換能夠大幅度減輕網(wǎng)絡(luò)的負(fù)擔(dān),因此設(shè)計(jì)一個(gè)基于UDP 數(shù)據(jù)廣播的局域網(wǎng)絡(luò)
    會(huì)議系統(tǒng)式完全可行的。

        通常來(lái)說(shuō),一臺(tái)計(jì)算機(jī)只有一個(gè)物理界面與網(wǎng)絡(luò)相連接,所有的應(yīng)用程序均通
    過(guò)該物理界面從網(wǎng)絡(luò)接收數(shù)據(jù)或者將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)。由于一個(gè)網(wǎng)絡(luò)上同時(shí)存在多
    臺(tái)計(jì)算機(jī),并且一臺(tái)計(jì)算機(jī)上有可能同時(shí)存在多個(gè)應(yīng)用程序需要與網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交
    換,我們通常使用IP和端口號(hào)來(lái)識(shí)別需要進(jìn)行數(shù)據(jù)交換的計(jì)算機(jī)和應(yīng)用程序。每臺(tái)
    計(jì)算機(jī)由一個(gè)32位的IP地址來(lái)識(shí)別,在一個(gè)網(wǎng)絡(luò)中,每臺(tái)計(jì)算機(jī)的IP地址都是唯一
    的,因此應(yīng)用程序能夠根據(jù)IP地址來(lái)將數(shù)據(jù)發(fā)送到正確的計(jì)算機(jī)。每個(gè)需要與網(wǎng)絡(luò)
    進(jìn)行數(shù)據(jù)交換的應(yīng)用程序均被系統(tǒng)分配一個(gè)16位的端口號(hào),系統(tǒng)根據(jù)這個(gè)端口號(hào)將
    從網(wǎng)絡(luò)接收到的數(shù)據(jù)轉(zhuǎn)發(fā)給相對(duì)應(yīng)的應(yīng)用程序。端口號(hào)的范圍是從0 到65535 ,其
    中從0 到1023被系統(tǒng)所保留,主要是用來(lái)提供HTTP, FTP 以及TELNET等系統(tǒng)服務(wù),
    因此用戶自己的應(yīng)用程序不應(yīng)該試圖去使用小于1023的端口。

        Java語(yǔ)言的一個(gè)顯著優(yōu)點(diǎn)就是它從語(yǔ)言的高度上提供了對(duì)網(wǎng)絡(luò)的支持,使得程
    序員能夠很容易的構(gòu)建基于網(wǎng)絡(luò)的應(yīng)用程序。在Java 1.3版的標(biāo)準(zhǔn)類(lèi)庫(kù)java.net中
    提供了5 個(gè)接口以及21個(gè)Java類(lèi),在這些接口和類(lèi)的基礎(chǔ)上,程序員能夠輕易的實(shí)
    現(xiàn)幾乎是所有的常見(jiàn)網(wǎng)絡(luò)應(yīng)用。例如,ServerSocket能夠用來(lái)構(gòu)建基于TCP/IP的服
    務(wù)器程序,Socket能夠用來(lái)構(gòu)建基于TCP/IP的客戶端程序,而DatagramPacket以及
    DatagramSocket能夠用來(lái)構(gòu)建基于UDP 的數(shù)據(jù)廣播程序。在java.net中的其他Java
    庫(kù)能夠被用來(lái)實(shí)現(xiàn)域名解析、身份認(rèn)證、安全許可等一系列功能。由于這些Java庫(kù)
    的功能和具體用法等內(nèi)容已經(jīng)超出了本文的討論范圍,感興趣的讀者可以進(jìn)一步參
    考Java的文檔以及Sun 公司的Java Tutorial等資料。

        這個(gè)簡(jiǎn)單的程序包括如下三個(gè)模塊:

        數(shù)據(jù)廣播與接收模塊  -- Broadcast.java
        數(shù)據(jù)接收線程        -- Receiver.java
        圖形用戶界面        -- Chat.java


    凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
    、轉(zhuǎn)載請(qǐng)注明來(lái)處和原文作者。非常感謝。

    posted on 2005-12-14 13:20 草兒 閱讀(247) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java編程經(jīng)驗(yàn)談
    主站蜘蛛池模板: 成人a毛片视频免费看| 亚洲AV永久无码天堂影院| 99免费在线视频| 国产亚洲一区二区三区在线不卡| 色一情一乱一伦一视频免费看| 日韩一区二区免费视频| 亚洲AV日韩AV无码污污网站| 国产美女精品视频免费观看| 黄网站色成年片大免费高清| 亚洲日本一区二区三区在线不卡| 国产vA免费精品高清在线观看| 亚洲精品国产精品乱码视色 | 成人免费观看一区二区| 亚洲啪啪免费视频| 午夜免费不卡毛片完整版| 色噜噜噜噜亚洲第一| 亚洲色大成网站WWW久久九九| 国产va在线观看免费| 亚洲伦理中文字幕| 国产精品视频免费一区二区三区| 四虎国产精品成人免费久久 | 精品特级一级毛片免费观看| 亚洲一区二区三区乱码A| 中国国产高清免费av片| 久久久久久久亚洲Av无码| 丁香花免费高清视频完整版 | 99久久免费国产精品热| 亚洲视频国产精品| 日美韩电影免费看| 久久99久久成人免费播放| 久久亚洲AV成人无码电影| 日本免费一区尤物| 免费成人高清在线视频| 国产.亚洲.欧洲在线| 亚洲国产成人爱av在线播放| 久久国产高潮流白浆免费观看 | 亚洲Av永久无码精品黑人| 国产亚洲美日韩AV中文字幕无码成人| 日本高清免费观看| 久久亚洲精品11p| 亚洲视频在线免费观看|