Re: [問題] VC6 + Casync Socket的多人連線?

看板C_and_CPP (C/C++)作者 (finding)時間16年前 (2009/08/16 02:09), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《pc963kimo (........)》之銘言: : dear all: : 小弟我有一個問題想請教。我繼承了Casync Socket的Class,叫做DataSocket : DataSocket 生成了兩個物件 Aobj、Bobj,我想要由這兩個物件分別去收兩台電腦的 : 資料,在DataSocket.OnConnect階段收到的連線成功,但我不知道是 : Aobj或Bobj連線成功?測試的時候會因A0bj與Bobj建立而進來OnConnect兩次!! : 也就是說,是否有什麼辦法知道是Aobj或Bobj?以及如何分別收Aobj或Bobj : 的訊息? : 謝謝各位、不吝賜教^^ 它們是分別收到的, 因為是不同的物件 如果收到訊息後A 和 B, 所要處理的方式不一樣, 那應該是以你的DataSocket 為父類別, 然後在裏面提供virtual functon, 分別在子類別class A和class B裏實作之 ,就如同你繼承CAsync後,實作(override)OnConnect 這個virtual function一樣 當然,如果簡單一點, 你的DataSocket可以在constructor或自訂function傳變數進去, 來識別物件"們", 如id value, 然後在DataSocket的function裏, 再依id的不同, 去實作 相關的程式碼, 不過這有點不太OO就是了, 同類別的物件行為應該要一樣, 這樣子假設 你又想分辦第3個物件C, 又要去調整 DataSocket囉。 或者你在 DataSocket中, 提供 function pointer , 然後再由 A 和 B object去assign , 不過要這麼做, 不如就用第一種方式。 如果說錯, 再請其它大大指正。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.138.103
文章代碼(AID): #1AXldNs5 (C_and_CPP)
文章代碼(AID): #1AXldNs5 (C_and_CPP)