• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaのソケット通信について初歩的な質問です)

Javaのソケット通信について初歩的な質問です

このQ&Aのポイント
  • Javaのソケット通信について初歩的な質問です。クライアントがアクセスポイントを切り替えた場合でも、サーバとのコネクションは保てるのでしょうか?
  • Javaのソケット通信の初歩的な質問です。クライアントが別のアクセスポイントに接続しても、サーバとのコネクションは維持されるのでしょうか?
  • Javaのソケット通信に関する初歩的な質問です。クライアントがアクセスポイントを切り替えた場合でも、サーバとのコネクションは維持されるのでしょうか?

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

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

アクセスポイントを替えるということは、通信網の瞬断を意味すると思いますので、切断エラーが発生してソケット通信を保つことは難しいでしょう。 もしTCP/IP の機能で大丈夫であったとしても、恐らくクライアントは別な網へ接続されるため、DHCPとかIPマスカレードなどの原因によってサーバーからは別なクライアントと認識され、どうあっても同じソケットを保つことは出来ないと推測します。 http://www.ccjc-net.or.jp/~kouza/199805/dhcp1.html http://e-words.jp/w/IPE3839EE382B9E382ABE383ACE383BCE38389.html なので接続を保つためには、ソケットより上位層のアプリケーション的な仕組みが必要でしょう。 たとえば HTTP などは、Cookieや部分的GETやETagなどの仕組みを導入することで、ソケット接続が別であっても通信内容は継続することが出来ます。 http://www.studyinghttp.net/cookies http://www.studyinghttp.net/range http://ja.wikipedia.org/wiki/HTTP_ETag ただ、これを自分で実装するのはとても大変かと思いますので、耐障害性の強い既存のプロトコルを実装した JAR ライブラリの導入を検討するのが、一番簡単かと思います。

uky_
質問者

お礼

回答ありがとうございます。 屋内の場所に依存したゲームを作ってみたかったのでこのような質問をさせて頂きました。 アプリ層でクライアントを認識する仕組みを作れれば良さそうですね。Javaだけで完結させようと思っていましたが、他の方法を考えてみようと思います。 ありがとうございました。

その他の回答 (1)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>このような場合でも、サーバとクライアントのコネクションは保っていられるのでしょうか? もしくは、このような場合でもコネクションを保つ方法はあるのでしょうか? これは、Javaがどうこうという問題ではなく、(処理内容としては、OS側に近いですし)「システムにどういうふうな機能を持たせたいか」という作り手の問題だと思います。 システムは、「人間がこうして欲しい」という意志を持っても、多くの場合、それを感じて動いてくれません。 マニュアル等でしっかりと書かれていることは、そのとおりに動作してくれると思いますが、記載されていないことは、どうなるかわかりません。 たぶん、記載されていないケースについては、自分でそういうケースの動作確認をして、ダメな場合は、その機能を(Javaだけで対応可能かどうか不明ですが)作りこむことになると思います。

uky_
質問者

お礼

回答ありがとうございます。 やはりJavaだけで完結できるか難しい問題なのですね。 屋内の場所に依存したゲームを作ってみたかったのでこのような質問をさせて頂きました。 もう少し他の仕組みを考えてみたいと思います。 ありがとうございました。

関連するQ&A