TCP接続の複数人チャットプログラムをつくるには?

解決


素人志向  2004-01-09 01:10:19  No: 111147

一対一のサーバー、クライアントの送受信はできるのですが、クライアントを2つ以上にしてサーバー側で2 つ以上の接続要求の受け付けるようにするにはどのようにすればいいのでしょうか?


ねろ  2004-01-09 16:46:14  No: 111148

WinSockを使用するのなら、WinSockを配列にしておいて
新しい接続要求が来たら、新しいWinSockを作って、
データーを受け取る、切断が発生したら使用していた
WinSockを未使用にして、次に接続要求が来たら空いている
WinSockを割り当て、空いていなかったら新しいWinSock
を作って接続を受け付ける。こんな感じで出来ます。


batchman  2004-01-09 17:47:51  No: 111149

MSDNヘルプで、
「Winsock (Winsock) コントロールの使い方」で検索をかければ、
2つ以上の接続要求の受け付け方法が簡単に解説されています。


素人志向  2004-01-09 18:43:46  No: 111150

Private intMax As Long

Private Sub Form_Load()
    intMax = 0
   sckserver(intMax).LocalPort = 1001  ←この部分でエラー、オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)
   sckserver(intMax).Listen
End Sub

Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
   If Index = 0 Then
      intMax = intMax + 1
      Load sckserver(intMax)
      sckserver(intMax).LocalPort = 0
      sckserver(intMax).Accept requestID
      Load txtData(intMax)
   End If
End Sub

どうしたらいいのでしょうか?


素人志向  2004-01-09 18:59:32  No: 111151

解決しましたありがとうございました。


ラムだっちゃ  2004-01-09 19:04:39  No: 111152

同一のIPで使えるアプリケーションポート番号って1つだけしか使えない
ので、接続ごとに未使用のポート番号を使うようにすれば問題ないと思います。


素人志向(追加)  2004-01-09 20:22:16  No: 111153

MSDNヘルプのWinsock (Winsock) コントロールの使い方を参考にしているんですがサーバー側とクライアント側の接続がうまくいきません。
クライアント側のソースもどこか変える必要がありますか?


ラムだっちゃ  2004-01-10 09:21:07  No: 111154

サーバー側で待機しているポート番号をクライアント側で指定してください。
S:1001,1002,1003,1004,1005
C1:1001へ接続
C2:1001が使用中なので1002へ接続
C3:1001,1002が使用中なので1003へ接続
みたいな感じで。


ラムだっちゃ  2004-01-10 09:47:53  No: 111155

MSDNを見たらポート番号は変えなくてもよさそうですね。
勘違いしていました。
あと、ここは解決しているので、↓みてみます。
TCP接続の2 つ以上の接続要求の受け付けをするには?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加