我正在调试管理套接字的线程,并且注意到当我调用getOutputStream()时,调试会中断,并且不会引发异常。我什至在Socket.getOutputStream()中添加了断点,但没有办法解决问题。
Java服务器正确接受连接并等待输入(通过检查inputStream.available())。
Socket和ServerSocket都来自SSLSocketFactory和SSLServerSocketFactory。

我正在使用Android Studio。

我究竟做错了什么?

编辑:我什至试图将结构从Thread更改为AsyncTask,但结果是相同的。这真令人沮丧。

最佳答案

调试网络连接有点棘手,因为可能会发生超时。

我也不确定非应用程序代码(例如Socket.getOutputStream())上的断点是否真的有效。 AndroidStudio中的SDK代码可能与您的设备所使用的SDK代码不同,这意味着断点(设置为特定行)可能会以完全不同的方法结束(如果它们完全起作用)。

因此,我建议您更改代码并添加日志语句,并在必要时添加睡眠命令以减慢重要部分的速度。

对于SSL流量,我强烈建议您也查看传输的数据。有一些应用程序捕获设备上的流量,这些应用程序在没有root权限的情况下运行。然后,您可以使用Wireshark在PC上调试流量,并查看问题是否是由客户端和服务器之间的通信问题引起的。

10-05 17:48