判斷是哪一個ServerSocket |
尚未結案
|
ckrl933
一般會員 發表:16 回覆:15 積分:6 註冊:2005-01-31 發送簡訊給我 |
我宣告了16個ServerSocket指標, 然後將16個ServerSocket的
OnClientRead, OnClientDisconnect, OnClientError事件,
分別都指向同一個function來處理, 不過在事件中如何判斷是
哪一個ServerSocket產生的????
程式如下:
for (int count = 1; count < 17; count ) { ServerSocket[count] = new TServerSocket(this); ServerSocket[count]->Port = 4000 count; ServerSocket[count]->OnClientDisconnect = ServerSocketGlobalClientDisconnect; ServerSocket[count]->OnClientError = ServerSocketGlobalClientError; ServerSocket[count]->OnClientRead = ServerSocketGlobalClientRead; ServerSocket[count]->Open(); } . . . void __fastcall TMainForm::ServerSocketGlobalClientRead(TObject *Sender, TCustomWinSocket *Socket) { TServerSocket *tempServerSocket = dynamic_cast上面是錯誤的, 因為都不會進ServerSocket[client] == tempServerSocket 判斷式中 應該是我的想法是錯誤的, 要怎麼知道目前發生事件的ServerSocket編號?? 發表人 - ckrl933 於 2005/07/06 16:42:51 發表人 - ckrl933 於 2005/07/06 16:52:30 |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
ckrl933:你可以利用Tag屬性來判斷! for (int count = 1; count < 17; count ) { ServerSocket[count] = new TServerSocket(this); ServerSocket[count]->Port = 4000 count; ServerSocket[count]->Tag = count; ServerSocket[count]->OnClientDisconnect = ServerSocketGlobalClientDisconnect; ServerSocket[count]->OnClientError = ServerSocketGlobalClientError; ServerSocket[count]->OnClientRead = ServerSocketGlobalClientRead; ServerSocket[count]->Open(); } . . . void __fastcall TMainForm::ServerSocketGlobalClientRead(TObject *Sender, TCustomWinSocket *Socket) { TServerSocket *tempServerSocket = dynamic_castAndy Chang
------
Andy Chang |
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |