Socket编程的Connection reset 问题 求解

凌乱533 2016-12-18 11:15:23

我想用readObject 的方法把对象发送给服务器 但总是运行到din=new ObjectInputStream(socket.getInputStream());的时候就报错 Connection reset 用readUTF方法可以正常读取 为什么呢?


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.zms.utils.DbUtil;

public class ServerClient implements Runnable{
private static ServerSocket s_socket;
private static Socket socket;
private InputStream in;
private OutputStream out;
private ObjectInputStream din;
private ObjectOutputStream dout;
private DbUtil db=new DbUtil();

public void run() {
try {

din=new ObjectInputStream(socket.getInputStream());
dout=new ObjectOutputStream(socket.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("连接。。");
Object obj;
try {
obj = din.readObject();
if(obj.getClass().getName().equals("UserInfo")){
verifylogin(obj);
}
} catch (ClassNotFoundException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static void main(String[] args) {
try {
s_socket=new ServerSocket(4321);
System.out.println("fuwuqi ");
while(true){
socket=s_socket.accept();
ServerClient sc=new ServerClient();
Thread t=new Thread(sc);
t.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}







public void verifylogin(Object obj) throws SQLException{ //验证方法
System.out.println(obj.toString());
/*//List<Map<String,Object>> list=db.query("select * from userinfo where account=? and userpasw=?",new Object[]{username,pasw});

//if(list.size()>0){

System.out.println(db.update("update userinfo set online=? where account=?",new Object[]{"是",username}));
try {
dout.writeUTF("登陆成功!");
} catch (IOException e) {
e.printStackTrace();
}
}else{
try {
dout.writeUTF("登录失败!");
} catch (IOException e) {
e.printStackTrace();
}
}*/
}
}
...全文
294 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bcsflilong 2016-12-19
  • 打赏
  • 举报
回复
代码贴全一点 是不是线程堵塞了
bree06 2016-12-19
  • 打赏
  • 举报
回复
Client端代码呢?

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧