java - 客户端服务器套接字 java.net.SocketException : Software caused connection abort: recv failed

标签 java sockets ssl tcp

<分区>

Possible Duplicate:
java.net.SocketException: Software caused connection abort: recv failed

我正在尝试编写一个客户端服务器对,其中连接一整天都处于 Activity 状态,客户端等待服务器发送消息。步骤是:

  1. 服务器打开端口并监听连接
  2. 客户端连接并等待数据
  3. 一段时间后(可能是几个小时)服务器向客户端发送数据
  4. 客户端处理数据并返回给服务器
  5. 重复第 3 步和第 4 步

我可以让步骤 1-4 正常工作,但是如果我尝试重复步骤 3,我会在标题中看到错误。

这是我在客户端的方法:

private static void waitForInput(SSLSocket sslsocket) throws IOException {
        do {
            try {
                ObjectInputStream ois = new ObjectInputStream(sslsocket.getInputStream());
                ObjectOutputStream oos = new ObjectOutputStream(sslsocket.getOutputStream());

                Object o = (Object) (ois.readObject());
                // excluded code to process data     

                oos.flush();
                oos.writeObject(o);
                oos.reset();
            }
            catch(ClassNotFoundException e){
                System.err.println(e.getMessage());
            }
        } while ( true );
    }

代码在第 4 行失败,第一次绕过它阻塞并等待我获得下一位数据,但它两次都不起作用。我做错了什么?

最佳答案

当您等待从另一端已关闭的套接字中读取数据时,将抛出连接中止 IOException,如果您没有意外关闭套接字,请检查您的服务器端代码。 还可以上传服务器端代码以进行更深入的分析,也可以尝试发布堆栈跟踪,这将有助于分析。

关于java - 客户端服务器套接字 java.net.SocketException : Software caused connection abort: recv failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12466471/

上一篇:apache - SSL 问题(Apache 和 Django)

下一篇:node.js - 为 tls 服务器使用多个 ssl 证书?

相关文章:

php - 异步套接字客户端缓冲区大小

javascript - 无法在使用 SSL 的服务器中获取 css 和 js 文件

java 产生指定范围的随机数

java - 在其他函数中而不是 OnCreate() 方法中初始化按钮

java - 有没有办法通过套接字发送带有 DataOutputStream 的 Point 数组?

ssl - NGINX 转发 ssl 背后的 Tomcat 7

带有 SSL 到特定证书的 Android 休息客户端

java - 在两个 GUI 类之间传输 String 时出现 NullPointerException

java - 如何将显示方法添加到仅显示列表中第一个和最后 10 个项目的 Java 链表实现?

Java(网络):passing incremented values between client and server