• ベストアンサー

WinsockでConnect元を判断したい

大変困っています。何か知恵を授けてください。 VC++.Net2005でソケット通信のサーバアプリを書いています。 ・サーバアプリのListenPortは1つです。 ・クライアントAからアプリA1、アプリA2がConnectしてきます。 ・アプリA1、アプリA2の起動順は不確定です。 上記の条件で、どちらのアプリからのConnect要求かを判断したいのですが 何か方法は無いでしょうか?

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

  • ベストアンサー
  • axsies
  • ベストアンサー率64% (38/59)
回答No.1

プロトコルに制約がなければ、接続時にクライアントを識別するシグネチャかなんかを送るようにすればいいんではないでしょうか。 逆にクライアントを弄れないとか、プロトコルに手を加えられないのでしたら方法は無いです。

Bickyon
質問者

お礼

回答ありがとうございます。 クライアント側は触れないので、ListenPortを分けることにします。

その他の回答 (1)

  • jagd-doga
  • ベストアンサー率31% (14/45)
回答No.2

回答でなくて恐縮なんですが、プログラム的にA1とA2って何が違うんですかね。 それを整理すれば、違いを元に判別できると思いますが、どうでしょうか。 No.1の方が言うように、送受信のフレームに識別子的なものを乗せられるなら、 その違いを元に判別できるわけです。 A1とA2がServerに期待する動作が異なるなら、A1とA2はServerに対して 異なるアクションをしていると思います。 それがないのなら、設計として問題がある(実現できない)と思います。 今から追加するとして、簡単に思いつくところを挙げると  ・期待する動作ごとに特定のportを使う。  ・最初の送信フレームに要求種別を通知する。 でしょうか。

Bickyon
質問者

お礼

回答ありがとうございます。 >・期待する動作ごとに特定のportを使う。 この案でいこうと思います。

関連するQ&A