掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マルチスレッドのサーバから,クライアントに返信するには? (ID:56485)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
http://www.net24.ne.jp/~kenji/p_lantest/lantest.html http://x68000.q-e-d.net/~68user/net/echo-3.html を参考にVC++6.0でチャットプログラムを作っています. 現在サーバをマルチスレッド化し,複数のクライアントの接続を処理し,送られてきたデータをそのまま返信するまではできました. しかしそのデータを他のユーザに送るやり方がわかりません. よろしかったらご教授願いたいです. プログラムの概要としては以下の通りです. *(クラス名):このクラスの型の変数 class CServerDlg :CDialog :メインのダイアログ class CServerSock :CAsyncSocket :接続要求を処理 class CServerThread :CWinThread :実行されるスレッド class CSubSock :CSocket :データの送受信 CServerDlg::OnInitDialog (CServerSock).Create(〜)を呼び出す (CServerSock).Listen()を呼び出す CServerSock::OnAccept Accept(仮のソケット)で接続要求を処理 (CServerThread*)=AfxBeginThread(〜)実行 スレッドに,Acceptで指定したソケットを引き渡す スレッド開始(再開?) CServerThread::InitInstance (CSubSock).Attach(引き渡されたソケット) CSubSock::OnReceive CSocketFile file(this); CArchive In(&file, CArchive::load); CArchive Out(&file, CArchive::store); Inからデータ読み込み Outへデータ書き込み(送信) PostMessageにてメインのダイアログにデータを投げる となっております. CSubSock::OnReceive内で送受信を処理してしまっているので他のスレッドには送られません. PostMessageで投げたデータはメインのダイアログに表示されておしまいです.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.