全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1458
推到 Plurk!
推到 Facebook!

Indy Server Execute 問題

尚未結案
kirkcctw
一般會員


發表:4
回覆:3
積分:1
註冊:2007-12-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-05-03 14:12:45 IP:114.199.xxx.xxx 訂閱
請問以下 , 我用Indy寫了個TcpServer , 只要Client連入傳入任何資料 , 就回復一段文字 , 流量大的時候發現會有 pointer 錯誤跳出來 , 請問問題在哪 , source code 如下 :


[code cpp]
void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{
if (AThread->Connection->Connected()) {
String aaa ;
try {
aaa = AThread->Connection->ReadChar();
} catch (...) {
AThread->Terminate();
return;
};
if (!aaa.IsEmpty()) {
try {
AThread->Connection->Write("<?xml version='1.0' ?>\0");
AThread->Connection->Disconnect();
} catch (...) {
AThread->Terminate();
}
};
}
}
[/code]

編輯記錄
kirkcctw 重新編輯於 2011-05-03 00:13:27, 註解 無‧
GrandRURU
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-05-05 10:43:46 IP:59.120.xxx.xxx 未訂閱
可能是buffer區爆了,大量的話要考慮讀取效率
另外,斷線工作盡可能交給client做,對server效能會好一點,比較不會出怪手

以下附上code

[code cpp]
void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{
if (! (AThread->Terminated))
{
// 設定讀取timeout時間,避免卡住
IdTCPServer1->ReadTimeout = 500; // ms

AnsiString sTemp = *NullStr;
int iBufSize = AThread->Connection->ReadFromStack(false, 1000, false);
if (iBufSize > 0)
{
sTemp = AThread->Connection->ReadChar();
}

if (!sTemp.IsEmpty())
{
AThread->Connection->Write("<?xml version='1.0' ?>\0");
}
}
}

[/code]


===================引 用 kirkcctw 文 章===================
請問以下 , 我用Indy寫了個TcpServer , 只要Client連入傳入任何資料 , 就回復一段文字 , 流量大的時候發現會有 pointer 錯誤跳出來 , 請問問題在哪 , source code 如下 :


[code cpp]
void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{
??? if (AThread->Connection->Connected()) {
??? String aaa ;
??? try {
??? aaa = AThread->Connection->ReadChar();
??? } catch (...) {
??? AThread->Terminate();
??? return;
??? };
??? if (!aaa.IsEmpty()) {
??? try {
??? AThread->Connection->Write("<!--l version='1.0'-->\0");
??? AThread->Connection->Disconnect();
??? } catch (...) {
??? AThread->Terminate();
??? }
??? };
??? }
}
[/code]

kirkcctw
一般會員


發表:4
回覆:3
積分:1
註冊:2007-12-02

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