TIdTCPClient的幾種方法

2021-06-14 09:54:09 字數 3692 閱讀 1861

其實indy比較簡單,但是可以提供的方法太多了。我找了很久,才搞明白。

比方說這個讀取緩衝區的資料,就有很多種方法。相對於ttcpclient的幾種方法來說,tidtcpclient確實提供了多種選擇,不仔細研究真的容易糊塗(其實我比較喜歡用currentreadbuffer):

1、readfromstack

原型:function readfromstack(const araiseexceptionifdisconnected: boolean; const atimeout: integer; const ausebuffer: boolean; adeststream: tidbuffer): integer; virtual;

用於判斷緩衝區裡是否還有資料可讀,返回值:integer - number of bytes read.

2、currentreadbuffer

原型:function currentreadbuffer: string;

用於讀取socket資料到緩衝區,注意返回為string型別,如果直接顯示該string的資料,對於/0之後的資料可能看不到,因此要讀取所有的資料,還必須利用currentreadbuffersize()判斷該string的長度。

返回值:string - contents of the indy buffer.

3、getresponse

原型:function getresponse(const aallowedresponses: array of smallint): smallint; virtual;

對於簡單的命令應答可以使用這個方法獲取應答訊息,返回值:smallint - the numeric response number.

4、readbuffer

原型:procedure readbuffer(var abuffer; const abytecount: longint);

讀取指定數目的位元組到緩衝區abuffer,注意它會呼叫 readfromstack 以檢查緩衝區裡的資料是否少於abytecount

5、readinteger

原型:function readinteger(const aconvert: boolean): integer;

從緩衝區中讀取整型資料,它會呼叫readbuffer

6、readln

原型:function readln(const aterminator: string; const atimeout: integer): string; virtual;

讀取移行記錄,帶有乙個timeout屬性,以防止在讀不到新行時死迴圈。返回值:string - line read from the buffer.

注意行分隔符可能是以下幾種:

#0 - default line feed (#10)

lf - line feed (#10)

cr - carriage return (#13)

eol - end-of-line (carriage return line feed)

7、readlnwait:

原型:function readlnwait: string;

很像readln,但它會一直傻傻的等待

8、readsmallint

原型:function readsmallint(const aconvert: boolean): smallint;

9、readstream

原型:procedure readstream(astream: tstream; abytecount: longint; const areaduntildisconnect: boolean);

10、readstring

原型:function readstring(const abytes: integer): string;

與currentreadbuffer的不同在於它讀取指定長度的字串

idtcpclient和idtcpserver主要屬性

2008-10-13 12:40

idtcpclient屬性

1 : iohandler 如果有相應的輸入/輸出操作,那麼iohandler相對應的元件或

介面將提供乙個虛擬/抽象的輸入/輸出介面給相應的網路連線

2 : intercept 如果有乙個網路連線正在使用,那麼intercept 提供的元件或接

口將可以攔截相應的網路資料流中的資料

3 : boundip 指定使用idtcpclient元件的計算機系統的ip位址,也就是說,其

中是空白那麼什麼樣的計算機都可以使用,但如果指定的ip位址為239.126.12.2,那麼

就只有ip位址為239.126.12.2的計算機可以使用它.

4 : boundpor 網路埠的概念,指定使用idtcpclient元件的計算機系統網路

使用這個商品進行通訊

5 : host    如果不是使用boundip中的位址起先通訊,那麼host就是詣將

要通訊的計算機系統的名稱或它的ip位址,可以是計算機名也可以是ip位址.

6 : port    與boundport的概念是基本一樣的,只是它與host相配合來決

方法idtcpclient 主要使

用write,writebuffer,writecardinal,writefile,writeheader,writeinteger,writel

n,writerfcreply,writerfcstrings,writesmallint,writestream,writestrings.

通過它們 idtcpclient 可以傳送非常多的型別的資料到相應的服務端,而這些都是非

常的簡單

如: write的函式說明是:

procedure write(const aout : string) ; virtual;

它的目的很簡單,就是傳送乙個字串到相應的服務端.其中aout就是被傳送的字串.

而    writeln的函式說明是:

procedure writeln(const aout : string = ''); virtual;

它的目的就是在write的基礎上,在被傳送的字串後加入相應的回車控制項符.

注意 : 雖然idtcpclient可以直接使用,它不可以被單獨的使用,它必須與相應

的idtcpserver元件相配合才能發揮特定的作用,當然,如果相應的網路系統中具有這

樣的tcp伺服器應用,那麼idtcpclient也可以直接與它們進行通訊.

idtcpserver

屬性1 : bindings 包括了相應的服務端所允許的所有的socket(套接字)的相關信

息,比如它們的ip位址和埠號

2 : listenqueue 是規定在服務端失效之前最多可以允許的監聽網路連線的純種

數目.預設情況下它的值是15,但這個值可以根據自己的需要和系統的最大承受能力來

進行改變

3 : maxconnects 它表示的內容就是服務端可以承載的最大的網路連線數目,如果

它的值是0,那麼就表明它沒有最大的限制值,可以使用任意數目的連線.

4 : maxconnectionreply 與maxconnects相配合,當連線數目大

於maxconnects的數目時,它將返回乙個錯誤的資訊,而這個資訊是由tidrfcreply

類所定義的

5 : threadmgr 就是使用相應的    threadmgr 元件來對於網路連線執行緒進行管

理.

mysql幾種索引 mysql的幾種索引

為什麼建立索引後,速度就會變快?答 使用索引後,查詢是按二叉樹演算法來查詢到記錄 索引使用的注意事項 索引的代價 1.占用磁碟空間 2.對dml 新增 修改 刪除 操作有影響,變慢 在哪些列上適合新增索引 1.較頻繁的作為查詢條件字段應該建立索引 select from emp where empn...

mysql幾種語言 mysql的幾種SQL語句

一 資料查詢語言 dql dql全稱 data query language,作用是從表中獲取資料,用的最多的關鍵字是select,保留字有where order by group by等 1 select user,host from mysql.user select user,host fro...

Cocos Creator Debug的幾種方式

不知道有沒有同學文件還沒看完的就去折騰了?反正我就是,導致在坑里待了幾個小時。下了乙個最新版的creator v1.9.1 之前做過creator專案,隨之下了個vscode。然後就vscode工作流走一走,準備看看debug的時候才發現怎麼都搞不定了 把creator的幾種debug方式搬過來給大...