Re: [問題] VC6 + Casync Socket的多人連線?
看板C_and_CPP (C/C++)作者finding2005 (finding)時間16年前 (2009/08/16 02:09)推噓0(0推 0噓 0→)留言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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章