• 締切済み

サーバ/クライアントプログラム

クライアント側で dos.writeInt( 20 );で 20を書き込み  サーバ側は期待どうり表示されますが クライアント側で さっき書いた20を 読み込んでるはずなんですが int recv = dis.readInt(); System.out.println( "書き込みデータ " + recv ); の部分が無視されるんですが なぜさっき書いた20が 読み込めないんでしょうか? 解説をお願いします //サーバプログラム import java.net.*; import java.io.*; class a{ public static void main( String args[] ) { System.out.println( "Ready!" ); try { ServerSocket ss = new ServerSocket( 5000 ); while( true ) { Socket so = ss.accept(); InputStream i = so.getInputStream(); OutputStream os = so.getOutputStream(); DataInputStream dis = new DataInputStream( i ); DataOutputStream dos = new DataOutputStream( os); int recv = dis.readInt(); System.out.println( "受信データ " + recv ); dis.close(); dos.close(); i.close(); os.close(); } }catch ( Exception e ) { } } } //クライアントプログラム import java.net.*; import java.io.*; class b{ public static void main( String args[] ) { try { Socket so = new Socket( "localhost", 5000 ); InputStream i = so.getInputStream(); OutputStream os = so.getOutputStream(); DataInputStream dis = new DataInputStream( i ); DataOutputStream dos = new DataOutputStream( os ); dos.writeInt( 20 ); int recv = dis.readInt(); System.out.println( "書き込みデータ " + recv ); dis.close(); dos.close(); i.close(); os.close(); }catch( Exception e ) { } } }

みんなの回答

noname#94983
noname#94983
回答No.1

見たところ、サーバ側では、ただクライアントからの値を受け取るだけで、その後、クライアントにデータを送り返してないようですが。サーバで値を受け取った後、DataOutputStreamにwriteInt,flushしたらどうなりますか?

startover
質問者

お礼

どうも!

すると、全ての回答が全文表示されます。

関連するQ&A