Java编写服务器,遇java.net.SocketException: Software caused connection abort: recv failed错误,急

我在编写java集成服务器端时,出现了SocketException异常,错误如下:java.net.SocketException:Softwarecausedconn... 我在编写java集成服务器端时,出现了SocketException异常,错误如下:
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.net.SocketInputStream.read(SocketInputStream.java:182)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2249)
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2542)
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2552)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at nju.edu.server.XMLServer$ServerThread.run(XMLServer.java:86)
编译提示我的错误出现在下面代码的第五行:
try {
while(true){
ObjectInputStream in= new ObjectInputStream(socket.getInputStream());
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ServerOrder svod=(ServerOrder)in.readObject();
System.out.println(svod.ordertype);
Socket socketToC = new Socket("localhost",2400);
Socket socketToB = new Socket("localhost",2401);
按照异常提示,我的错误在于服务器在响应客户端socket时出现了问题。
现在在服务端读取客户端的ServerOrder(一个类)时,只在某些情况下可以读到,大多数情况都会报出这个异常,读不到任何类。
我不理解究竟问题出在哪儿,socket该关闭的都关闭了啊,而且也没有在进程结束前提前关闭的情况。
求大神帮助~~
展开
 我来答
chy305
2011-10-28 · TA获得超过125个赞
知道答主
回答量:65
采纳率:0%
帮助的人:62.7万
展开全部
出现这个情况一般是客户端那边写完流后,就立即关闭了socket。服务器端这边还没读完,所以就报错了,你可以让客户端那边写完对象后,等服务器端回一个状态给客户端。客户端再关闭流。
灵魂伴侣〃
2011-10-28
知道答主
回答量:6
采纳率:0%
帮助的人:3.7万
展开全部
..............
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悟安志0FV
2011-10-28 · TA获得超过245个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:75.7万
展开全部
读之前先判断一下流是否可用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式