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

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

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

    游戲策劃咨訊
    做一個(gè)游戲并不難,難的是做一個(gè)好游戲;完美在于積累!

    如何編寫用TCP/IP的通訊程序

       最近在網(wǎng)上不斷的看到有人問如何用BCB的TServerSocket和TClientSocket進(jìn)行編程的問題,所以決定把我的一些編程經(jīng)驗(yàn)告訴給大家,讓大家能夠盡快的掌握他們的用法。

    首先要講一下他們的一些設(shè)置(屬性):
    TServerSocket 的幾個(gè)屬性
    Active       
        是否是工作狀態(tài),可以把它設(shè)置為ture或false來啟動(dòng)和停止偵聽。
    Port
        本機(jī)偵聽的端口,可以設(shè)置為一大于1024的數(shù);
    ServerType   
        服務(wù)端的工作方式,有兩個(gè)選擇,一個(gè)是stNonBlocking 非阻塞方式,一個(gè)是stThreadBlocking線程阻塞方式,默認(rèn)是非阻塞方式。用非阻塞方式編程比較簡單(我個(gè)人認(rèn)為),用阻塞方式對(duì)每個(gè)連接必須自己用線程來控制收發(fā)。
    ThreadCacheSize  
        緩沖的線程個(gè)數(shù) 當(dāng)ServerType是stThreadBlocking時(shí)有效。
    TClientSocket 的幾個(gè)屬性
    Active      
        是否是工作狀態(tài),可以把它設(shè)置為ture或false來同服務(wù)端建立或斷開連接。
    Host    
        服務(wù)器(ServerSocket)的計(jì)算機(jī)名,是一個(gè)字符串
    Address
    服務(wù)器(ServerSocket)的IP地址
    ClientType
       客戶端的工作方式一種是ctNonBlocking非阻塞方式,一種是ctBlocking阻塞方式,默認(rèn)是非阻塞方式
    Port
    同服務(wù)端(ServerSocket)連接的端口,這個(gè)端口就是ServerSocket的偵聽              端口
    在設(shè)置ClientSocket的(Host)主機(jī)名和設(shè)置(Address)IP地址是等效的,但設(shè)主機(jī)名需要網(wǎng)絡(luò)具有DNS(域名解析服務(wù))服務(wù)器,而且設(shè)主機(jī)名要比設(shè)主機(jī)的IP地址連接的速度慢一些。建議用Address來同ServerSocket進(jìn)行連接。

    設(shè)置好所有的屬性后,ServerSocket控件就可以通過將它的Active屬性置為true來進(jìn)行偵聽了。ClientSocket可以通過設(shè)置它的Active屬性來同ServerSocket進(jìn)行連接。連接成功就可以進(jìn)行通訊了。在這個(gè)過程中會(huì)產(chǎn)生一些事件,下面說說他們各自的事件。

    TServerSocket的幾個(gè)事件
    OnAccept
        當(dāng)一個(gè)客戶同服務(wù)端連接成功后產(chǎn)生這個(gè)事件,產(chǎn)生這個(gè)事件后這個(gè)連接就可用了,可以對(duì)這個(gè)客戶進(jìn)行發(fā)送和接收數(shù)據(jù)。
    OnClientConnect  
    當(dāng)一個(gè)客戶正在同服務(wù)端建立連接的時(shí)候產(chǎn)生此事件,在這里你可以決定是否接受這個(gè)連接。
    OnClientDisconnect
    當(dāng)一個(gè)客戶同服務(wù)端的連接斷開的時(shí)候產(chǎn)生此事件,你需要在這里進(jìn)行一些處理,如從連接列表中清除次連接釋放內(nèi)存等。
    OnClientError
    當(dāng)客戶同服務(wù)端出現(xiàn)錯(cuò)誤時(shí)產(chǎn)生此事件,在此事件中你可以通過設(shè)置ErrorCode = 0來屏蔽系統(tǒng)的錯(cuò)誤提示。這樣就可以避免討厭的英文錯(cuò)誤了。根據(jù)ErrorEvent的不同的值來得知發(fā)生了什么錯(cuò)誤,它有一下幾中錯(cuò)誤類型
    eeGeneral   未知錯(cuò)誤
    eeSend    發(fā)送數(shù)據(jù)出現(xiàn)錯(cuò)誤
    eeReceive   接收數(shù)據(jù)出現(xiàn)錯(cuò)誤
    eeConnect   客戶請(qǐng)求連接時(shí)出現(xiàn)錯(cuò)誤
    eeDisconnect 客戶斷開連接時(shí)出現(xiàn)錯(cuò)誤
    eeAccept     接受一個(gè)客戶時(shí)發(fā)生錯(cuò)誤
        一般來講,當(dāng)發(fā)生錯(cuò)誤的時(shí)候這個(gè)客戶的連接就已經(jīng)不可用了,要對(duì)這個(gè)客戶進(jìn)行連接失敗處理。
    OnClientRead
    當(dāng)服務(wù)端收到客戶端發(fā)來的數(shù)據(jù)的時(shí)候產(chǎn)生此事件。接收客戶端的數(shù)據(jù)都在這里進(jìn)行。
    OnClientWrite
    當(dāng)服務(wù)端發(fā)送數(shù)據(jù)的時(shí)候產(chǎn)生此事件。

    TClientSocket的幾個(gè)事件

    OnConnect
    同服務(wù)端(ServerSocket)連接成功后將產(chǎn)生此事件,產(chǎn)生此事件后才說明這個(gè)連接可用了,這時(shí)才可以向ServerSocket發(fā)送數(shù)據(jù)。
    OnConnecting
    正在同服務(wù)端進(jìn)行連接是產(chǎn)生此事件。
    OnDisconnect
    同服務(wù)端的連接斷開后產(chǎn)生此事件,產(chǎn)生此事件后ClientSocket的Active屬性就為false了,這時(shí)這個(gè)連接就不可用了,必須重新進(jìn)行連接才能向服務(wù)器發(fā)送數(shù)據(jù)。
    onError
    當(dāng)Socket發(fā)生錯(cuò)誤時(shí)產(chǎn)生此事件,這個(gè)事件的意義和ServerSocket的Error事件完全一樣,只是它沒有eeAccept錯(cuò)誤。
    OnRead
    當(dāng)接收到服務(wù)端發(fā)來的數(shù)據(jù)后產(chǎn)生此事件。
    OnWrite
    當(dāng)向服務(wù)端發(fā)送數(shù)據(jù)的時(shí)候產(chǎn)生此事件。

    上面介紹了一下這兩個(gè)控件的基本屬性和事件,在掌握一些方法就可以用這兩個(gè)控件進(jìn)行編寫通訊程序了,今天寫的有寫累了,改天在寫它的方法并具體使用這兩個(gè)控件編寫一個(gè)通訊程序,有兩個(gè)選擇,一個(gè)是局域網(wǎng)的聊天程序,一個(gè)是局域網(wǎng)內(nèi)的控制程序,大家喜歡那一個(gè)呢?給點(diǎn)建議吧.

    posted on 2005-07-24 00:19 藍(lán)色雪焰 閱讀(551) 評(píng)論(0)  編輯  收藏 所屬分類: 編程技術(shù)
     
    主站蜘蛛池模板: 日韩免费高清视频| 国产国拍亚洲精品mv在线观看| 菠萝菠萝蜜在线免费视频| 亚洲国产第一站精品蜜芽| 噼里啪啦电影在线观看免费高清| 黄页网站在线观看免费| 亚洲视频在线观看网站| 又粗又大又猛又爽免费视频| 亚洲视频在线观看免费| 国产亚洲蜜芽精品久久| 亚洲六月丁香六月婷婷色伊人 | 日本视频免费在线| 免费无码H肉动漫在线观看麻豆 | 男女拍拍拍免费视频网站| 亚洲国产成人va在线观看网址| 亚洲精品97久久中文字幕无码| 三年片在线观看免费观看大全动漫| 亚洲国产精品无码第一区二区三区| 亚洲精品色午夜无码专区日韩| 日韩精品福利片午夜免费观着| 成人妇女免费播放久久久| 亚洲色大情网站www| 亚洲福利在线视频| 亚洲综合区小说区激情区| 欧美a级成人网站免费| 国产精品视频白浆免费视频| 四虎永久在线精品免费一区二区| 亚洲av一本岛在线播放| 久久精品亚洲中文字幕无码网站 | 亚洲人成网站在线观看播放动漫 | 亚洲AV无码专区在线厂| 亚洲导航深夜福利| 亚洲AV无码精品色午夜在线观看| 亚洲国产成人精品91久久久| 全免费a级毛片免费看无码| 2020因为爱你带字幕免费观看全集| 男女一进一出抽搐免费视频| 免费一级毛suv好看的国产网站| 亚洲日韩国产一区二区三区在线| 亚洲另类激情综合偷自拍| 亚洲精品无码专区久久久|