我正在调试管理套接字的线程,我注意到当我调用getOutputStream()时,调试会中断而不会抛出任何异常。我甚至在Socket.getOutputStream()中添加了断点,但是没有办法弄清楚什么是错的。 Java服务器正确接受连接并等待输入(通过检查inputStream.available())。 Socket和ServerSocket都来自SSLSocketFactory和SSLServerSocketFactory。
我正在使用Android Studio。
我做错了什么?
编辑:我甚至尝试将结构从Thread更改为AsyncTask,但结果是一样的。这令人沮丧。
答案 0 :(得分:1)
调试网络连接有点棘手,因为可能会发生超时。
我也不确定非应用程序代码(如SELECT name, COUNT(*) from language
join film using (language_id)
JOIN film_actor using (film_id)
GROUP by name
)上的断点是否真的有效。 AndroidStudio中的SDK代码可能与您的设备使用的代码不同,这意味着断点(设置为特定行)可能以完全不同的方式结束(如果它们完全有效)。
因此我建议更改您的代码并添加日志语句,如果需要,还可以使用sleep命令来减慢重要部分的速度。
对于SSL流量,我强烈建议您查看传输的数据。有些应用程序捕获在没有root权限的情况下运行的设备上的流量。之后,您可以使用Wireshark调试PC上的流量,看看问题是否是由客户端和服务器之间的通信问题引起的。