線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2258
推到 Plurk!
推到 Facebook!

我寫了一段程式碼, 有幾個INDY10 的問題想問問各位前輩

答題得分者是:careychen
gptesu
一般會員


發表:14
回覆:14
積分:5
註冊:2008-09-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-04 19:57:27 IP:202.175.xxx.xxx 訂閱
我寫了一段程式碼, 有幾個INDY10 的問題想問問各位前輩: (程式碼如下)

1. 以下的程式是否為"多線程"呢? 能否同時有多個client 訪問一個server呢?

2. Client 執行了動作,在server那邊接收到client的動作,之後server有沒有需要做 "AContext.Free" 的動作. (*** 之後server 仍需處理其他client)

3. 我只在IdTCPServer1Execute做動作,也能運行. 但沒有設定IdTCPServer1Connect 有沒有問題?

謝謝各位!


Client
[code delphi]
unit AttFileForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB, Sockets, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient;

type
TForm5 = class(TForm)
IdTCPClient1: TIdTCPClient;

procedure SendMessageClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form5: TForm5;

implementation
uses DataModuleA;
{$R *.dfm}
procedure TForm5.SendMessageClick(Sender: TObject);
var
begin
try
IdTCPClient1.Connect;
IdTCPClient1.IOHandler.WriteLn('upload');
finally
IdTCPClient1.Disconnect;
end;
end;
end.
[/code]

server
[code delphi]
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdCustomTCPServer, IdTCPServer, IdContext,
math, ComCtrls,ExtCtrls, Gauges, StdCtrls;

type
TformMain = class(TForm)
IdTCPServer1: TIdTCPServer;
Label1: TLabel;
procedure IdTCPServer1Execute(AContext: TIdContext);
private
protected
public
end;

var
formMain: TformMain;

implementation
{$R *.dfm}

//uses IdGlobal;
procedure TformMain.IdTCPServer1Execute(AContext: TIdContext);
begin
Label1.Caption:=AContext.Connection.IOHandler.ReadLn;

// AContext.Free;
end;
end.

[/code]
編輯記錄
gptesu 重新編輯於 2009-02-04 20:00:12, 註解 無‧
gptesu 重新編輯於 2009-02-04 20:01:49, 註解 無‧
gptesu 重新編輯於 2009-02-04 20:02:46, 註解 無‧
gptesu 重新編輯於 2009-02-04 20:04:20, 註解 無‧
gptesu 重新編輯於 2009-02-04 20:05:25, 註解 無‧
gptesu 重新編輯於 2009-02-04 20:06:02, 註解 無‧
gptesu 重新編輯於 2009-02-04 20:56:59, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-04 23:29:05 IP:59.126.xxx.xxx 訂閱
1. 以下的程式是否為"多線程"呢? 能否同時有多個client 訪問一個server呢?
a-1: Server 是多線程的, Indy Server 會把每一個連線弄成一條 Thread
a-2: 可以多 Client

2. Client 執行了動作,在server那邊接收到client的動作,之後server有沒有需要做 "AContext.Free" 的動作. (*** 之後server 仍需處理其他client)
不需要

3. 我只在IdTCPServer1Execute做動作,也能運行. 但沒有設定IdTCPServer1Connect 有沒有問題?
沒有問題
------
價值的展現,來自於你用哪一個角度來看待它!!
gptesu
一般會員


發表:14
回覆:14
積分:5
註冊:2008-09-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-05 15:22:21 IP:202.175.xxx.xxx 訂閱
謝謝你啊! ^_^
系統時間:2024-04-25 23:43:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!