- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UDP/IPでのソケット作成について(winsock))
UDP/IPでのソケット作成について(winsock)
このQ&Aのポイント
- UDP/IPでのソケット作成について(winsock):クライアントの要求ポートが重複する場合の対応方法について
- UDP/IPでのソケット作成について(winsock):TCP/IPとは異なるUDPの特性と複数クライアント対応の課題
- UDP/IPでのソケット作成について(winsock):Windowsのマルチスレッドを活用した複数クライアント対応の実現方法
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まあ、複数プロセスとやり取りしたいのだったら、リッスンポートにアクセスして認証できた時点で別プロセス立ち上げて別ポートで通信始めるというのが簡単な気がします。 クライアントも認証が終了したらサーバーから伝えられたポートに変更すれば何台通信されても(まあ、限界は有りますけど)大抵受け付けられます。 ただし、そのソケットが開かないっていうのを回避するのであれば、リッスンポート増やすんだったと思いますけど。記憶はあいまいです。
その他の回答 (1)
- R32C
- ベストアンサー率39% (115/290)
回答No.2
それを昔vxworksでやったことがあります。 UDP同一ポート複数接続は、不可能ではありません。 受信時にselectで待って、それから、スレッド生成してセッションの情報を送って やればできるように思います。 自分が過去やったのは、上記のような並行サーバではなく、反復サーバでした(マイコンですので)が、 それで実装できています。 いずれも 15000番のソケット1つで実装できるのではないでしょうか。 >同じ既に開いているポートでソケット作成しようとしても、socket()関数はエラーを返してくるのですが、 これはできません。おわかりですよね。
質問者
お礼
簡単なプログラムですが、いちおうUDP同一ポート複数接続が出来るようになりました。 アドバイスありがとうございました。
お礼
回答ありがとうございます。 >リッスンポートにアクセスして認証できた時点で 今回はUDP/IPなので、listen()を使っていないのですが、「別プロセス立ち上げて別ポートで通信始める」というやり方に挑戦してみたいと思います。 >ソケットが開かないっていうのを回避するのであれば、リッスンポート増やす 今回はUDP/IPなので、listen()を使っていないので、リッスンポート増やす事はできないと思いますが、いかがでしょうか。