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

tserversocket元件漏失接收client端請求連線問題

尚未結案
wishmaster926
初階會員


發表:91
回覆:69
積分:32
註冊:2006-12-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-11-09 16:40:57 IP:125.225.xxx.xxx 訂閱
我是用TSERVERSOCKET元件來接收client端的連線,下面的程式碼是將要求連線的各個client端相關資訊記錄在一個
listview元件上.
目前程式測試時發生一問題,就是當client端一多的時候(7,8台以上),serversocket元件就會發生漏失接收client的現象.
例如serversocket元件一開始listen後,原本有10台主機要求連線,但研判是我在ClientConnect事件中處理指令太多耗時,以致於
tserversocket元件原本要接收到10台連線,但只真正connect到6,7台(以上測試皆為公司內部網域測試).
有想過用thread來解決此問題,但又不知從何下手,因為沒寫過thread程式,請各位高手大大們指點迷津,感恩阿!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[code cpp]
void __fastcall TForm1::server_socket1ClientConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
int nAdd;
AnsiString buff;
Application->ProcessMessages();
client_view1->Items->Add();
nAdd=client_view1->Items->Count-1;
buff=Socket->RemoteAddress;
client_view1->Items->Item[nAdd]->SubItems->Add("");
client_view1->Items->Item[nAdd]->SubItems->Add(buff);
buff=Socket->RemotePort;
client_view1->Items->Item[nAdd]->SubItems->Add(buff);
buff=DateTimeToStr(Now());
client_view1->Items->Item[nAdd]->SubItems->Add(buff);
//遞增上線數
online_host ;
host_amount->Text=show_online_host IntToStr(online_host);
//遞增上線數
}

[/code]

------
~~~~~~~~時時多爬文 勿使惹塵埃~~~~~~~~
~~~~~~~~時時多爬文 勿使惹塵埃~~~~~~~~
~~~~~~~~時時多爬文 勿使惹塵埃~~~~~~~~
編輯記錄
taishyang 重新編輯於 2009-11-09 17:04:30, 註解 無‧
wishmaster926 重新編輯於 2009-11-09 17:17:42, 註解 無‧
kostin
一般會員


發表:18
回覆:43
積分:22
註冊:2010-03-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-04-05 03:21:09 IP:218.162.xxx.xxx 訂閱
我的程式沒有遇到這樣的問題!!  12台連線沒有問題
不過小弟建議 減少server_socket1ClientConnect
事件內的工作 會有幫助!!
------
工程師的世界太深奧了 ~ 總是有不斷的驚奇發生
在解決問題的當下 , 才能確認我的存在
在得到幫助的當下 , 才能發現我不孤單
系統時間:2024-03-29 3:54:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!