代码之家  ›  专栏  ›  技术社区  ›  king_nak

J2ME应用程序关闭套接字:服务器无法获取所有数据

  •  0
  • king_nak  · 技术社区  · 14 年前

    我的J2ME客户端应用程序有问题,它将数据发送到J2SE服务器,并立即关闭发送套接字。在J2ME方面,我使用一个普通的 OutputStream SocketConnection ,并反复呼叫 write flush 最后呢 close 流和连接。

    在模拟器中运行客户端时,一切正常。但用真正的设备我遇到了一些问题。。。

    我注意到的是,无论我在客户端做什么,连接都没有正确关闭。我总是得到一个 Connection reset read 在服务器上最终返回 -1 ,表示连接已正确关闭,完全没有异常…)

    我尝试使用总数据包大小(10242048,…)和客户端套接字选项(Delay、Linger、Keep alive)。我也试过 Thread.sleep 之间 脸红 关闭

    • 接收部分数据(约1500字节),然后不再读取数据,也不会引发异常,从而阻塞
    • 所有数据正确接收,然后异常(延迟和总大小在1024左右)

    确保对方接收到所有数据的最佳方法是什么?正如我所说,J2ME客户机声明所有数据都已成功写入(总大小不能固定为特定值)

    1 回复  |  直到 14 年前
        1
  •  0
  •   Xavier Combelle    14 年前