みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

javaプログラミングの質問です。

1 ネットワークを通じて送信する可能性のあるコマンド文字列とその働きを書いてください。

2 26,73行目のcatchで補足される可能性のある例外と、その発生箇所と原因を書いてください。
2番は大変なので1番だけの解答でも大丈夫です。

よろしくお願いします。

1: import java.awt.event.*;
2: import java.awt.*;
3: import java.io.*;
4: import java.net.*;
5:
6: public class Test72 {
7: private MyCanvas c;
8: private BufferedWriter bw;
9: private BufferedReader br;
10:
11: public static void main( String[] args ) {
12: Test72 t72 = new Test72();
13: t72.doEvent();
14: }
15:
16: Test72(){
17: Frame f = new Frame( "Test72" );
18: f.setSize(640,480);
19: f.addWindowListener( new WindowAdapter() {
20: @Override public void windowClosing( WindowEvent e ) {
21: try {
22: bw.write( "quit" );
44
23: bw.flush();
24: bw.close();
25: br.close();
26: } catch( Exception e2 ) {}
27: System.exit( 0 );
28: }
29: });
30: c = new MyCanvas();
31: c.addMouseListener( new MouseListener() {
32: @Override public void mouseClicked( MouseEvent e ) {
33: try {
34: bw.write( "setOval " + e.getX() + " " + e.getY() + "¥n" );
35: bw.flush();
36: c.setPoint( e.getX(), e.getY() );
37: } catch( Exception e2 ) {}
38: }
39: @Override public void mouseEntered( MouseEvent e ) {}
40: @Override public void mouseExited( MouseEvent e ) {}
41: @Override public void mousePressed( MouseEvent e ) {}
42: @Override public void mouseReleased( MouseEvent e ) {}
43: });
44: c.addMouseMotionListener( new MouseMotionListener() {
45: @Override public void mouseDragged( MouseEvent e ) {
46: try {
47: bw.write( "setOval " + e.getX() + " " + e.getY() + "¥n" );
48: bw.flush();
49: c.setPoint( e.getX(), e.getY() );
50: } catch( Exception e2 ) {}
51: }
52: @Override public void mouseMoved( MouseEvent e ) {}
53: });
54: f.add( c );
55: f.setVisible( true );
56: }
57:
58: public void doEvent() {
59: try {
60: InetSocketAddress socketAddress =
61: new InetSocketAddress( "localhost", 8000 );
62: Socket socket = new Socket();
63: socket.connect( socketAddress, 10000 );
64: InetAddress inadr;
65: if( ( inadr = socket.getInetAddress() ) != null ){
66: System.out.println( "Connect to " + inadr );
67: } else {
68: System.out.println( "Connection failed" );
69: System.exit( 0 );
70: }
71: bw = new BufferedWriter(
new OutputStreamWriter( socket.getOutputStream() ) );
72: br = new BufferedReader(
new InputStreamReader( socket.getInputStream() ) );
73: } catch( Exception e ) {}
74: }
75: }

投稿日時 - 2013-12-07 12:50:41

QNo.8376672

すぐに回答ほしいです

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

ひとつずつ調べて、ネットワークに送信するメソッドがどれか特定する

そのメソッドで送信されるのはどんな文字列か調べる

という手順で追いかけてください。
その上で、わからない点があれば、そのわからない箇所がどのように理解できないのか、具体的に示してください。

たとえば
f.setSize(640,480);

f→ Frameのインスタンス
→Frame.setSizeメソッドのマニュアルを読む
→ネットワークに関係ない
とわかりますよね?
これすらわからない、というのなら、理解が足りないです。教科書を戻って理解できるまで復習してください。


こういう手間をかける気が無い、という場合は、プログラミングに向いてません。

投稿日時 - 2013-12-08 20:34:29

ANo.3

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

1もやりかたは同じです。

熟練者なら、一通り眺めるだけでわかるかもしれませんが、
そうでないなら、一つずつ確認するだけです。

投稿日時 - 2013-12-07 18:16:55

補足

すみませんが自分には1番わからないので説明おねがいできませんか?

投稿日時 - 2013-12-07 18:37:42

ANo.1

2番も簡単です。
そのcatchに対応するtryの中にあるものについて、マニュアルで調べるだけですから。

26行なら
bw.write( "quit" );
bw.flush();
bw.close();
br.close();
の4つが対象。
private BufferedWriter bw;
private BufferedReader br;
なのだから、BufferdWriter,BufferdReaderのそれぞれのメソッドのマニュアルを読めばいい。

例えば、
bw.write("quit") なら、 BufferWriterのマニュアルを読む
http://docs.oracle.com/javase/jp/6/api/java/io/BufferedWriter.html
ここにwrite(String)というメソッドは無いが、Writerから継承されるものとして write(String) があるので、Writerのマニュアルを読む。
http://docs.oracle.com/javase/jp/6/api/java/io/Writer.html#write%28java.lang.String%29
> 例外:
> IOException - 入出力エラーが発生した場合
発生する例外と、その内容が簡単に書いてある。


あとは、おなじみの 「NullPointerException」

投稿日時 - 2013-12-07 14:01:50

補足

ありがとうございます。出来れば1番もお願いします。

投稿日時 - 2013-12-07 14:16:05

あなたにオススメの質問