Socket编程报这个异常 Connection reset:

图片说明
上面是客户端代码
下面是服务器端代码,当服务器端执行Readline();就抛出Connection reset

try {
ServerSocket ss = new ServerSocket(6000);

        System.out.println("服务器已经对端口号为12002的端口进行监听");
        while (true) {
            Socket socket = ss.accept();
            System.out.println(socket.getRemoteSocketAddress() + "连接上服务器");
            if (socket.isClosed()) {
                System.out.println("连接被关闭");
            }
            System.out.println("OK");

            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(
                    new InputStreamReader(is));
            // 获得输出流
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            // 4.读取用户输入信息
            String info = null;
            info = br.readLine();
            while (!((info = br.readLine()) == null)) {
                System.out.println("我是服务器,用户信息为:" + info);
            }
            // 给客户一个响应
            String reply = "welcome";
            pw.write(reply);
            pw.flush();
            // 5.关闭资源
            pw.close();
            os.close();
            br.close();
            is.close();
            socket.close();

这个可能是服务器没有开启或者运行,或者是防火墙拦截了,检查防火墙的设置。

网络没连上,看看是不是有占用端口的,或者 有重复IP,防火墙问题

你的客户端在执行flush之后执行了什么?导致客户端重新连接了

package org.example.socket;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
private Button b;
private TextView t;
private TextView tshow;

public void visit() {
    new Thread() {
        public void run() {
            try {

                Socket socket = new Socket("222.210.48.174", 6000);
                String message = t.getText().toString() + "/r/n";  
                PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);    
                  out.println(message);  
                  //接收来自服务器的消息 
                  BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));  
                  String msg = br.readLine();  
                  if ( msg != null ) 
                  { 
                    tshow.setText(msg); 
                  } 
                  else
                  { 
                    tshow.setText("数据错误!"); 
                  } 
                  out.flush();
                  //关闭流 
                  out.close(); 
                  br.close(); 
                  //关闭Socket 
                  socket.close();  

            } catch (UnknownHostException e) {
                System.out.println("ip不正确");
                e.printStackTrace();
            } catch (IOException e) {

                e.printStackTrace();
            }

        }
    }.start();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    t = (TextView) findViewById(R.id.textView1);
    b = (Button) findViewById(R.id.button1);
    tshow = (TextView) findViewById(R.id.textView2);

    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            visit();
        }

    });
}

}