/****
异常解释: 主要报的是一个 Connection reset :连接重置异常
导致此异常的原因是 客户断的连接断开了,也就是说
当服务端要从客户端读取数据的时候,客服端就断开连接了,当然就会报异常了。
*/
////////////////////////Server.java 代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server = new ServerSocket(9528);
System.out.println("服务器启动成功...等待连接>>>>");
Socket so = server.accept();
System.out.println("获取一连接....");
/*
* 服务端在读取客户端数据的时候,
* 当客户端关闭连接,就会报Connection reset:连接重置异常
*
* 所以这时候不能让客户端的程序结束...
*
*/
InputStream in = so.getInputStream();
InputStreamReader inR = new InputStreamReader(in);
BufferedReader inbf = new BufferedReader(inR);
String cmd = inbf.readLine();
System.out.print(cmd);
if (cmd.equals("1")) {
NewThread thd = new NewThread(so);
thd.start();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
////////////////NewThread.java 代码:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class NewThread extends Thread {
private Socket sct;
private String cmd;
private String a;
public NewThread(Socket s) {
sct = s;
try {
while(true){////////////////////////
InputStream in = sct.getInputStream();
InputStreamReader inR = new InputStreamReader(in);
BufferedReader inbf = new BufferedReader(inR);
cmd = inbf.readLine();
a = inbf.readLine();
}////////////////////////////////////
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
sct.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void run() {
System.out.print(cmd);
System.out.print(a);
}
}
// ///////////////////Client 代码:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String []args){
String s="abc";
try{
Socket socket=new Socket("localhost",9528);
System.out.println("服务器连接成功》。。。。");
OutputStream out = socket.getOutputStream();
InputStream in = socket.getInputStream();/////////////
String str = "1\n" + s;
System.out.print(str);
out.write(str.getBytes());
////////////
while(true){
in.read();
}
////////////
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
in = new BufferedReader(new InputStreamReader(s
.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket
.getOutputStream())), true);
代码已经修改好了,百度犯什么抽,不让传。。
是服务器端和客户端连接的原因,所以检查一下连接。
dfdfdffdfdsfdfdfd