关于socket的传对象问题,求高手支招。。。在线急等

a824326817 2014-03-24 10:43:53
现有如下问题,同过datainputstream获取客户端的请求码(int值),发送一个对象给客户端,代码如下
server端:
ServerSocket serverSocket = new ServerSocket(10001);
Socket socket = serverSocket.accept();
System.out.println("连接ok");
DataInputStream in = new DataInputStream(socket.getInputStream());
int flag = in.readInt()
switch (flag) {
case 1:
ObjectOutputStream obj_out = new ObjectOutputStream(socket.getOutputStream());
obj_out.writeObject(new Integer(3));
obj_out.flush();
break;
}



client端:

SocketUtil.getIpConnect(SocketUtil.ip);//保证获取到
Socket socket = SocketUtil.getSocket();

//DataInputStream in = new DataInputStream(socket.getInputStream());
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeInt(1);
ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream());

int t=0;
Object object = objectInputStream.readObject();
Integer x = (Integer)object;
t = x;


代码很简单,但是在Object object = objectInputStream.readObject();时出现异常:java.net.SocketException: Connection reset by peer

新手求教解决方法,在线急等。。。。










...全文
658 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝壳鱼 2014-03-28
  • 打赏
  • 举报
回复
用wireshark抓包就一目了然了, Server先断了连接。
淡定的峰哥 2014-03-25
  • 打赏
  • 举报
回复
建议LZ还是先去找些socket和serversocket的代码来练习 就你这个问题 server端是单线程的,运行完就结束了,即server服务器就关闭了,给你分析一下server端的过程 1、首先server启动后在serverSocket.accept();会阻塞,等待client连接 2、一旦有client连上,在in.readInt()发生阻塞,等待从client端读取数据,即client向server端写数据 3、当client端写完数据后,server端就能读取了,程序向下运行,到后面再向客户端回写数据 4、写完之后,刷新缓存,至此server端程序运行完毕,server服务器关闭了 5、那么此时client端还在傻傻的等着从server端读取数据,server端写完的一刹那,server也已经关闭了,client端还能读数据吗

13,100

社区成员

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

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