- ベストアンサー
TCP通信による1サーバ、複数クライアントモデル
TCP通信による1サーバ、複数クライアントモデル(チャット等)をwinsockを使用して作成したいのですが、複数のクライアントからサーバにアクセスする方法がわかりません。マルチスレッドで、クライアントからの受信待ちスレッドと、ログイン中クライアントへのメッセージ送信スレッドが必要(?)なんでしょうか?また具体的なソースなど掲載されているページがありましたら教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
マルチスレッドにしなくても出来ますよ。 acceptまでのSOCKET(接続受付用)を1個と acceptの戻り値のSOCKET(send/recv用)をn個入れる器があれば、シングルタスクでチャットサーバが出来ます。 #define MAX_CLIENTS 512; SOCKET a,d[MAX_CLIENTS]; int clients=0; a=socket(....); bind(a,.....); listen(a,.....); で待っていて、接続要求があれば d[clients]=accept(a,......); clients++; 後はd[0~clients]まで受信要求の有無を見てて、 要求があれば、recvして、 d[0~clients]にsendしてあげれば良いです。 参考URLは色々参考になります