多人数チャット(VC) – プログラミング – Home

通知
すべてクリア

[解決済] 多人数チャット(VC)


o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

現在マルチスレッドサーバーを作ったのですが、
多人数チャットの作り方がよくわかりません。

スレッドでの処理をしているのですが、
1つのクライアントがメッセージを送ってきたときに
他のクライアント全てにそのメッセージを返すには
どうすればよいのでしょうか?

どうかよろしくお願いします。

以下(自分のHPでソースコードダウンロード可)

http://www.ab.wakwak.com/~soikawa/

ネットワークRPGサンプル(Net-Rpg) ->
マルチスレッドサーバー
(クライアント複数対サーバーです。)->
サーバープログラム(Port8番使用)


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

他のクライアントを受け持つスレッドにこのテキストを送信しろとお願いします。
あるいは'全クライアントに送信する関数'を用意し、それを呼びます。


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

>他のクライアントを受け持つスレッドにこのテキストを送信しろとお願いします。
>あるいは'全クライアントに送信する関数'を用意し、それを呼びます。

他のクライアントを受け持つスレッドに
このテキストを送信しろ(Send関数)
の命令の送り方がよくわかりません。

他のクライアントを受け持つスレッドを参照するには
どうすればよいのでしょうか?

また、'全クライアントに送信する関数'
でも、

他のクライアントを受け持つスレッドを参照
(他のクライアントのソケットを参照)
するには
どうすればよいのでしょうか?


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 23年前
投稿: 90
 

手抜きしたければ、DirectXのDirectPlayが
「リアルタイム音声会議システム」を丸ごと提供します。
自作にこだわるなら、話は別ですが。ところで
> Port8番使用
こんなことして、大丈夫?


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

> 他のクライアントを受け持つスレッドに
> このテキストを送信しろ(Send関数)
> の命令の送り方がよくわかりません。

具体的なコードを示すことはできません。
あなたの設計が明確にならない限り。

# スレッド間通信や排他制御にはいろんな方法があります。
# どうやって実装するかは、あなたの設計次第です。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> 他のクライアントを受け持つスレッドに
> このテキストを送信しろ(Send関数)
> の命令の送り方がよくわかりません。

実装方法はいろいろありますが、
自分でメッセージ送受信の仕組みを作るより
CWinThreadを派生してユーザーインターフェイス
スレッドを作ったほうが簡単で安全でしょう。

CWinThread::PostThreadMessage()を使って
メッセージを投げることが出来ます。


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

できました。
クライアントの数を調べ、Send関数のソケットをいじり、
アクセスしてきた
クライアントのソケット全てにSend関数を送るという方法をとりました。

>> Port8番使用
>こんなことして、大丈夫?

8番を使うのはまずいのでしょうか?


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

512番以下は予約されています。
1024番以下の使用はスーパーユーザに限られています(バークレーUNIX)。
一般ユーザが使えるのは1025~32767番です。


返信引用
o_2
 o_2
(@o_2)
ゲスト
結合: 22年前
投稿: 31
Topic starter  

了解しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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