2017-04-14 24 views
0

私はJavaでソケットプログラミングを学んでいます。私はjava.net.SocketException: Connection resetを得ています。ここでエラーを取得する "java.net.SocketException:接続リセット"

クライアント側のコード

package com.socket; 

    import java.io.OutputStreamWriter; 
    import java.io.PrintWriter; 
    import java.net.Socket; 

    public class ClientSock { 

     public static void main(String[] args) throws Exception { 

      Socket skt = new Socket("localhost", 8888);  
      String str = "Hello Server"; 
      OutputStreamWriter osw = new OutputStreamWriter(skt.getOutputStream()); 

      PrintWriter out = new PrintWriter(osw); 
      osw.write(str); 
      osw.flush();   
     } 
    } 

//Server Side Code: 

    package com.socket; 

    import java.io.BufferedReader; 
    import java.io.InputStreamReader; 
    import java.net.ServerSocket; 
    import java.net.Socket; 

    public class ServerSock { 

     public static void main(String[] args) throws Exception { 

      System.out.println("Server is Started"); 
      ServerSocket ss = new ServerSocket(8888); 

      Socket s = ss.accept(); 

      BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream())); 
      String str = br.readLine(); 

      System.out.println("Client Says : " + str);   
     } 
    } 

が実行クライアントコードの後に​​私のコンソールで、私は私が間違っているの例外接続のリセットを取得していますか?

Server is Started 
Exception in thread "main" java.net.SocketException: Connection reset 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) 
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source) 
    at sun.nio.cs.StreamDecoder.read(Unknown Source) 
    at java.io.InputStreamReader.read(Unknown Source) 
    at java.io.BufferedReader.fill(Unknown Source) 
    at java.io.BufferedReader.readLine(Unknown Source) 
    at java.io.BufferedReader.readLine(Unknown Source) 
    at com.socket.ServerSock.main(ServerSock.java:19) 
+0

[私のjava.net.SocketExceptionの原因は何ですか?]:Connection reset?](http://stackoverflow.com/questions/585599/whats-causing-my-java-net-socketexception-connection-reset) – halfer

+0

[他の多くの潜在的な重複はこちら](https://stackoverflow.com/search?q=java.net.SocketException%3A+Connection+reset)。 – halfer

答えて

1

close()を呼び出さずに相手が強制終了された場合、「java.net.SocketException:Connection reset」のメインエラーが発生します。

skt.close(); 

をClientSockするために、この行を追加して、私はServerSockにあまりにもこれをお勧めします。

ss.close(); 

java.io.Closeableオブジェクトはclose()を呼び出す必要があります。

+0

skt.closeは例外を削除しますが、例外の根本原因は削除しません。 SocektExceptionの複数の可能性があります。 –

+0

はい、例外はなくなりました! SocketとServerSocketの両方を閉じます。 グッドソンミングォンとヴィネセットカサット。 –

0

"Hello Server"で "\ n"を忘れました。
リーダーは完全な行を取得できず、この例外をスローします。

関連する問題