No.2ベストアンサー
- 回答日時:
ソケット通信とは「交通ルール」みたいなものです。
そのルールでは「赤信号は止まれ」とか「この標識は駐車禁止」とかが決められています。
Webというのはhttpというルールでやり取りしています。
httpとは「郵便局の配送ルール」みたいなものです。
郵便局は「交通ルール」という道路を使う上で守らなければいけないルールを守りながら、自分達のルールで局の間や配達先に郵便物を配っています。
通信ではこのルールのことをプロトコルと呼び、交通ルールのようにより基本的なプロトコルは「下位のプロトコル」、郵便局のルールのように実際の業務に近いものを「上位のプロトコル」と呼びます。
質問者さんはこの「httpで」というところで話されているので、metaタグとかPHPではという話になっています。
ところが#1さんは「ソケット通信」のところで話してますので、JavaやPHPや他の「ソケット通信」が可能な言語なら「あなたのオセロゲームの通信ルール」を自分で作れますよ、とおっしゃってるのだと思います。
そして「httpだけ」を使っている以上、サーバ側の処理をどんなプログラム言語でやっていようが、クライアントから定期的に情報をとるようにするにはmetaタグでの処理が必要です。そのためサーバ側がサーブレットでもJSPでもPHPでもhttpを使っているので、同じようにmetaタグを使わねばならないでしょう。
「ソケット通信」では上位のプロトコルを自前で作ってしまう上に、「ソケット」が作れるプログラム言語ならどの言語ともやりとりできるので、なんでもありなのです。
JavaとPHPの大きな違いはブラウザ上で動くプログラムを作れるかどうかです。
PHPは(私が調べた限り)できないようですが、Javaはアプレットがあります。
このアプレットを使えば、一見するとWebで(=http)でやりとりしたように感じますがアプレットがソケットを使えば、最初にhttpをつかったかどうかに関係なく、他のプロトコルを使うことができるのです。
と、ここまで説明したところで・・・「Javaで」と聞かれたとき、それがどこで使われるのかによって答えは変わります。
クライアントでも使えるのならソケットを使えばなんでもありだし、サーバでhttpだけならPHPと変わりありません。
ありがとうございます
クライアント側でアプレットを実行するのはJavaが使えないクライアントを排除することになるので魅力が減退しますね?
PHPとMETAでやればすべてのブラウザに対応できるので
相手が打つのを待っているクライアントの定期的な更新による画面のちらつきを我慢しなければならないけれども
最適かもしれませんね?
No.1
- 回答日時:
詳細が不明なので回答しにくいですが、一般的にはソケット(JavaならSocketクラス)を使えば可能でしょう。
ただし、これはJavaに限った話ではありません。ソケット通信は大抵のプログラミング言語で使用可能です。
質問者さんはWebを利用したいのでしょうか?
それであれば、Javaアプレットでサーバプログラムとソケット通信すれば可能です。
(アプレットでなくActiveXでも可能かもしれません。)
もちろん、サーバプログラムはどこかに用意しておく必要があります。
サーバの方はJavaでなくても構いません。
Webを利用しない場合は、クライアント/サーバ共に通常のアプリケーションになります。
この場合もクライアント/サーバ間での通信はソケット通信になると思います。
必ずしもJavaを使う必要はありません。サーバとクライアントで別の言語を使用しても構いません。
ただ、複数のOSで動作するクライアントプログラムを作るためにJavaを使用するのは良い選択だと思います。
>どういう仕組みでサーバとクライアント2者間でのやり取りをするのでしょうか?
ソケット通信ならどうとでもできるかと…。
この回答への補足
ありがとうございます
質問者さんはWebを利用したいのでしょうか?:
そうです
最初にサーバにアクセスした人が先手になり
次にサーバにアクセスした人が後手になり
それぞれにオセロ盤が表示され
自分の番のときに盤上をクリックするごとに石が置かれていくのです
例えば先手がクリックすればサーバはそれに対する応答を先手に返すことができるのですが
先手のクリックを後手に知らせる方法がアクセスが一過性であるために難しいのです
そのためにPHPでは相手が打つのを待っているほうに
<meta http-equiv = "refresh">
で定期的に自動更新させるという方法を取るしかないかと思います
サーバをSとし
先手をAとし
後手をBとしたとき
Aがクリックした情報をSをとおしてBに知らせるには
Javaではどのようにするのでしょうか?
<meta http-equiv = "refresh">
を使わなくていいのですね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UdpClient 送信元のIPアドレ...
-
【ajax】 XMLHttpRequestオブジ...
-
UDP通信におけるbind関数について
-
同じLAN内パソコンのIPアドレス...
-
エクセル VBA でのCOMポート...
-
ソケットのクローズについて
-
Winsockで接続待ちタイムアウト...
-
Connectエラーが出てしまう・・...
-
ソケットを用いた1対多通信につ...
-
WIN32API CreateFileのCOMx
-
VB6のwinsockでconnectできない
-
VB6‥ソケットについて
-
recv関数でフリーズしてしまう
-
winsockでファイル転送
-
WinSockでチャット
-
音声入出力プログラムの作成方...
-
TCP/IP通信型プログラムです。...
-
TCP/IP通信でのコネクシ...
-
VBのソケット通信(winsock)の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
VB6のwinsockでconnectできない
-
Socket通信の0バイト受信について
-
recv関数でフリーズしてしまう
-
UDP通信におけるbind関数について
-
ソケットのrecvの戻り値が0
-
Winsockで接続待ちタイムアウト...
-
UDP通信する時に、相手にどうや...
-
UdpClient 送信元のIPアドレ...
-
ソケット通信 同じポート番号...
-
ソケットのクローズについて
-
空きポートの取得方法
-
Winsockを使わずにVBでSocketを...
-
ソケットでクライアントのipア...
-
ソケット通信
-
ソケットを用いた1対多通信につ...
-
ソケットとそれに基づくストリ...
-
CreateFile関数でCOMポートが開...
-
SIPがNATを越えられない理由
おすすめ情報