程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> TCPClient組件和TCPServer組件的主要方法和屬性,tcpclienttcpserver

TCPClient組件和TCPServer組件的主要方法和屬性,tcpclienttcpserver

編輯:Delphi

TCPClient組件和TCPServer組件的主要方法和屬性,tcpclienttcpserver


IdTCPClient屬性
1 : IOHandler 如果有相應的輸入/輸出操作,那麼IOHandler相對應的組件或接口將提供一個虛擬/抽象的輸入/輸出接口給相應的網絡連接
2 : Intercept 如果有一個網絡連接正在使用,那麼Intercept 提供的組件或接口將可以攔截相應的網絡數據流中的數據
3 : BoundIP 指定使用IdTCPClient組件的計算機系統的IP地址,也就是說,其中是空白那麼什麼樣的計算機都可以使用,但如果指定的IP地址為239.126.12.2,那麼就只有IP地址為239.126.12.2的計算機可以使用它.
4 : BoundPort 網絡端口的概念,指定使用IdTCPClient組件的計算機系統網絡端口,也就是說,如果BoundPort中指定了以整數為端口的網絡端口,那麼通訊時就只能使用這個商品進行通訊
5 : Host 如果不是使用BoundIP中的地址起先通訊,那麼Host就是詣將要通訊的計算機系統的名稱或它的IP地址,可以是計算機名也可以是IP地址.
6 : Port 與BoundPort的概念是基本一樣的,只是它與HOst相配合來決定IdTCPClient組件要與哪一個計算機系統中的什麼樣的網絡通訊端口進行通訊

方法
IdTCPClient 主要使用Write,WriteBuffer,WriteCardinal,WriteFile,WriteHeader,WriteInteger,WriteLn,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 組件來對於網絡連接線程進行管理.

delphi 7 中的tcpClient怎接收服務器發送的數據

我的是Delphi 6,不知Delphi 7中的netchart示例中用的是什麼通信組件?如果是ServerSocket與ClientSocket,則看一看下面的程序:
在Delphi中,用ServerSocket與ClientSocket組件,建立TCP/IP通信非常容易。

1、創建2個應用程序,一個是Server,另一個是Client。

2、Server程序的窗體上放置ServerSocket組件,並設置其port屬性(如:設置為5000),並將Active屬性設置為True;

3、Client程序的窗體上放置ClientSocket組件,也設置其port屬性,與ServerSocket組件的port屬性相同,也設置為5000;設置Adress屬性為Server程序所在的機器的IP地址。如果Server程序與Client程序在同一台機器上,則設置Address 為127.0.0.1 。
再放一個命令按鈕,在OnClick事件中添加一行事件處理程序:
ClientSocket1.Open;

在OnConnect事件中添加事件處理程序:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add('已經建立連接...');
end;

4、Server端:利用ServerSocket1.socket.connections[i].sendtext('......')
發送文本。在OnClientRead事件中接收Client端發送來的信息:

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add(socket.ReceiveText);
end;

5、Client端:利用ClientSocket1.Socket.SendText('......')
發送文本。在OnRead事件中接收Server端發送來的信息:

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add(socket.ReceiveText);
end;

行了,可以運行了。
 

DELPHI供的TCPCLIENT與一個TCPSERVER控件可以過網關?

你理解有問題,網關是個網絡設備,用於內網上網的,不存在過網關,至於你說的TCPClient和TCPServer 可以建立TCP連接實現通訊,不過推薦用 Socket 那個又方便又簡單,此外如果內網連公網是可以連的,但是公網在不做映射的情況下是無法連接內網的!
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved