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

當Client斷線又連線時 Server計數的問題

缺席
kostin
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-04-19 17:15:35 IP:122.127.xxx.xxx 訂閱
請問各位前輩
小弟目前寫好的程式中

當觸發 ServerSocket1ClientConnect 時 Count
當觸發 ServerSocket1ClientDisconnect 時 Count--

Client 正常 連線 ClientSocket1->Active = true;
正常 斷線 ClientSocket1->Active = false;
都沒有問題

但是如果沒照這樣的程序 Server端計數就會有問題??
EX: Client 拔掉網路線 Client發生錯誤訊息 等

請問有什麼好方法防治 感恩 謝謝
------
工程師的世界太深奧了 ~ 總是有不斷的驚奇發生
在解決問題的當下 , 才能確認我的存在
在得到幫助的當下 , 才能發現我不孤單
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-04-20 10:54:11 IP:112.104.xxx.xxx 未訂閱
直接使用 ServerSocket1->Socket->ActiveConnections
或使用下列方式來定時更新自定的連線數
ConnectionCount := RefreshConnectionCount;

[code delphi]
function TForm1.RefreshConnectionCount: Integer;
var
I: Integer;
begin
Result := 0;
for I := ServerSocket1.Socket.ActiveConnections-1 downto 0 do
try
if ServerSocket1.Socket.Connections[I].Connected then Inc(Result);
except
Continue;
end;
end;

[/code]

kostin
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-04-22 13:27:22 IP:122.127.xxx.xxx 訂閱
JOW 大
我用了您的方法
還是不行耶~~
Client 以人工拔除網路線時
ServerSocket1->Socket->ActiveConnections
還是不會減少阿

ServerSocket1->Socket->Connections[I]->Connected
應該是用來判別 第i個連線 還在否??

我拔除網路線之後 程式還是判別 true 耶

===================引 用 jow 文 章===================
直接使用 ServerSocket1->Socket->ActiveConnections
或使用下列方式來定時更新自定的連線數
ConnectionCount := RefreshConnectionCount;

[code delphi]
function TForm1.RefreshConnectionCount: Integer;
var
? I: Integer;
begin
? Result := 0;
? for I := ServerSocket1.Socket.ActiveConnections-1 downto 0 do
? try
??? if ServerSocket1.Socket.Connections[I].Connected then Inc(Result);
? except
??? Continue;
? end;
end;

[/code]

------
工程師的世界太深奧了 ~ 總是有不斷的驚奇發生
在解決問題的當下 , 才能確認我的存在
在得到幫助的當下 , 才能發現我不孤單
Hero
一般會員


發表:3
回覆:10
積分:12
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-09-09 16:26:58 IP:111.83.xxx.xxx 訂閱
如果client端不是主動通知要斷線,Server端不會知道是不是斷線
也就是說Server端要對該連線進行讀、寫的動作才會發現失敗而引發例外,這時才會觸發OnDisconnect event
之前追過source,應該是定時檢查每個連線的connected可以到是不是斷線
系統時間:2017-12-17 12:18:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!