推しミネラルウォーターはありますか?

各行のプログラムがなにをしてるかちょっとわからないので誰か教えてください><お願いします!
PrintWriter out=new PrintWriter(socket.getOutStream(),true);
out.println("hello,World!");

BufferedReader in=new BufferedReader(
new InputStreamReader(socket.getInputStream());
String result=in.readLine();

A 回答 (4件)

> 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なのかな?
    • good
    • 0

ソケット通信の基本形です。


このソースはクライアントタイプのものでしょう。

コネクションを張ったsocketをつくり、
それを使用してサーバに、「hellow,World」と送信する。
それに対してしてサーバからの返答を読み取るといった
一連のプロセスを書いたものです。
    • good
    • 0

ちょっと書き直してみます。



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
を間にいれます。


これらは、ファイル入出力など、ストリームを扱う場合にはよく出てくる決まり文句のような
ものですから、覚えておいた方がいいでしょう。
    • good
    • 0

各行の説明は#1さんの回答が適切だと思います。



なお、ご質問のソースは、ここのHelloWorldSocketClient.javaのソースとそっくりですね。
http://www.hellohiro.com/socket.htm

上記ページではソースにコメントが入っているのでわかりやすいと思いますよ。
    • good
    • 0
この回答へのお礼

みなさん、ありがとうございます><
お礼の返信遅れて申し訳ございません・・・
プログラムを見て一行一行意味をとっていったらちょっとわからないところとか出てきて。。。くだらない質問しちゃったかと思いますが、参考になりました!
ありがとうございました!

お礼日時:2004/07/20 16:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報