各行のプログラムがなにをしてるかちょっとわからないので誰か教えてください><お願いします!
PrintWriter out=new PrintWriter(socket.getOutStream(),true);
out.println("hello,World!");
BufferedReader in=new BufferedReader(
new InputStreamReader(socket.getInputStream());
String result=in.readLine();
No.1ベストアンサー
- 回答日時:
> PrintWriter out=new PrintWriter(socket.getOutStream(),true);
ソケットの出力ストリームに対し、書き込み準備をする。
> out.println("hello,World!");
Hello,World!と書き込む。(これで上のソケットに対し、データが送信される)
> BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream());
上のと同じソケットから、読み込み準備をする。
> String result=in.readLine();
ソケットに対して送られてきたデータを1行読み込む。
ネットワークプログラムの基礎のような感じだな。なんだろう。Javaなのかな?
No.4
- 回答日時:
ソケット通信の基本形です。
このソースはクライアントタイプのものでしょう。
コネクションを張ったsocketをつくり、
それを使用してサーバに、「hellow,World」と送信する。
それに対してしてサーバからの返答を読み取るといった
一連のプロセスを書いたものです。
No.3
- 回答日時:
ちょっと書き直してみます。
1.OutputSteam os = socket.getOutputStream();
2.PrintWriter out=new PrintWriter(os, true);
3.out.println("hello,World!");
4.InputStream is = socket.getInputStream():
5.InputStreamReader isr = new InputStreamReader(is);
6.BufferedReader in=new BufferedReader(isr);
7.String result=in.readLine();
おおまかな流れとしては、
A.ソケットへ「hello,World!」と送信し、(1~3)
B.同一ソケットから、1行読みとる(4~8)
と思われます。
*変数socketのクラス名が不明なため、想像でしか答えられません。
また、「socket.getOutStream()」とありますが、Socketクラスには
getOutStream()はなく、getOutputStream()があります。
2ですが、1で取得したOutputSteamオブジェクトは、
そのままでは扱いづらいので(文字列にも対応していない)、
PrintWriterクラスでラッピングします。
6も同じように、4で取得したInputStreamクラスが、文字単位の考え方が
ないため、BufferedReaderを使います。
しかし、InputStreamは直接BufferedReaderにできないため、InputStreamReader
を間にいれます。
これらは、ファイル入出力など、ストリームを扱う場合にはよく出てくる決まり文句のような
ものですから、覚えておいた方がいいでしょう。
No.2
- 回答日時:
各行の説明は#1さんの回答が適切だと思います。
なお、ご質問のソースは、ここのHelloWorldSocketClient.javaのソースとそっくりですね。
http://www.hellohiro.com/socket.htm
上記ページではソースにコメントが入っているのでわかりやすいと思いますよ。
みなさん、ありがとうございます><
お礼の返信遅れて申し訳ございません・・・
プログラムを見て一行一行意味をとっていったらちょっとわからないところとか出てきて。。。くだらない質問しちゃったかと思いますが、参考になりました!
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル VBA でのCOMポート...
-
Webオンラインオセロゲーム
-
TCP/IP通信時のサーバーからの受信
-
相手のIPアドレスを取得する方法
-
送信したデータの一部が文字化...
-
fsockopenのソケットが全然分か...
-
C言語でHTTP1.1のキープアライ...
-
UDP通信におけるbind関数について
-
Macターミナルで実行中のプログ...
-
大容量のメモリ確保をスワップ...
-
エクセルが勝手に立ち上がる
-
コンパイラの違いについて
-
Mac 乗数の入力方法
-
スーパーのレジで並んでいたら...
-
エクセルのメモリ使用状況/Appl...
-
C++のプログラムをバックグラウ...
-
Excelでのセル内容の高速消去方法
-
プログラム実行中に強制終了
-
バックグラウンドのプロセスの...
-
DirectX LPDIRECT3DDEVICE9のマ...
マンスリーランキングこのカテゴリの人気マンスリー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を越えられない理由
おすすめ情報