上面是客户端代码
下面是服务器端代码,当服务器端执行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();
}
});
}
}