• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UDP/IPでのソケット作成について(winsock))

UDP/IPでのソケット作成について(winsock)

このQ&Aのポイント
  • UDP/IPでのソケット作成について(winsock):クライアントの要求ポートが重複する場合の対応方法について
  • UDP/IPでのソケット作成について(winsock):TCP/IPとは異なるUDPの特性と複数クライアント対応の課題
  • UDP/IPでのソケット作成について(winsock):Windowsのマルチスレッドを活用した複数クライアント対応の実現方法

質問者が選んだベストアンサー

  • ベストアンサー
  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.1

まあ、複数プロセスとやり取りしたいのだったら、リッスンポートにアクセスして認証できた時点で別プロセス立ち上げて別ポートで通信始めるというのが簡単な気がします。 クライアントも認証が終了したらサーバーから伝えられたポートに変更すれば何台通信されても(まあ、限界は有りますけど)大抵受け付けられます。 ただし、そのソケットが開かないっていうのを回避するのであれば、リッスンポート増やすんだったと思いますけど。記憶はあいまいです。

axis_555
質問者

お礼

回答ありがとうございます。 >リッスンポートにアクセスして認証できた時点で 今回はUDP/IPなので、listen()を使っていないのですが、「別プロセス立ち上げて別ポートで通信始める」というやり方に挑戦してみたいと思います。 >ソケットが開かないっていうのを回避するのであれば、リッスンポート増やす 今回はUDP/IPなので、listen()を使っていないので、リッスンポート増やす事はできないと思いますが、いかがでしょうか。

その他の回答 (1)

  • R32C
  • ベストアンサー率39% (115/290)
回答No.2

それを昔vxworksでやったことがあります。 UDP同一ポート複数接続は、不可能ではありません。 受信時にselectで待って、それから、スレッド生成してセッションの情報を送って やればできるように思います。 自分が過去やったのは、上記のような並行サーバではなく、反復サーバでした(マイコンですので)が、 それで実装できています。 いずれも 15000番のソケット1つで実装できるのではないでしょうか。 >同じ既に開いているポートでソケット作成しようとしても、socket()関数はエラーを返してくるのですが、 これはできません。おわかりですよね。

axis_555
質問者

お礼

簡単なプログラムですが、いちおうUDP同一ポート複数接続が出来るようになりました。 アドバイスありがとうございました。

関連するQ&A