マルチスレッドにしなければダメですか? – 固定ページ 2 – プログラミング – Home

マルチスレッドにしなければダメですか?
 
通知
すべてクリア

[解決済] マルチスレッドにしなければダメですか?

固定ページ 2 / 2

p
 p
(@p)
ゲスト
結合: 22年前
投稿: 9
 

CSocket + CFile + CArchiveの組み合わせでプログラムを組むのは
避けたほうがいいです。
データ受信の方法が間違っているのでしばらく送受信したあとで
データが到着しても受信イベントが発生しなくなります。
VC++6でコンパイルしたものは比較的ましに動きますが、
VC++2005/2008でコンパイルしなおしたものだとちょっと動かした
だけですぐ受信が止まります。

#自作アプリでもVC++6に付属のchatter/chatsrvrサンプルでも受信は止まる。
#chatter/chatsrvrはVC++2005/2008にはもう附属されなくなった。

MFCはかなりよくできたライブラリだと思いますが、
CSocket + CFile + CArchiveの抽象化についてはたぶん設計ミス。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> CSocket + CFile + CArchiveの組み合わせでプログラムを組むのは
> 避けたほうがいいです。

それは裏返せば CSocket/CAsyncSocket だけ使ってるうちは無問題てことですか?


返信引用
p
 p
(@p)
ゲスト
結合: 22年前
投稿: 9
 

>それは裏返せば CSocket/CAsyncSocket だけ使ってるうちは無問題てことですか?
↓のような批判もありますが、
http://www.kt.rim.or.jp/~ksk/wskfaq-ja/articles/csocket.html
僕がソースを読んだ限りでは概ね(?)大丈夫なんじゃないかと思います。
CAsyncSocketのほうは割と薄いWinSockラッパーなので、そちらのほうが
お勧めかなぁ~。
自作ソフトはMFCを使うわけにはいかない別の事情ができて、骨組みから大改造。
CAsyncSocketの仕組みを真似たSocketクラスを自作しちゃいましたけど。


返信引用
p
 p
(@p)
ゲスト
結合: 22年前
投稿: 9
 

補足です。

>CAsyncSocketのほうは割と薄いWinSockラッパーなので、そちらのほうが
>お勧めかなぁ~。
CSocketのブロック型模倣の問題はマルチスレッドにすれば
解決するというものではないので、少なくともサーバー側用途
としては使わないほうがよさそうに思います。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました