【发布时间】:2018-12-14 10:40:50
【问题描述】:
我构建了一个应用程序来向服务器发送数据并且服务器正在响应响应。 该应用程序可在所有三星设备上完美运行。 我以为它已经完成了,但后来我得到了一部新手机,小米的 pocophone F1。 它第一次以 50/50 工作,但第二次在 .read() / .readline() 处阻塞(答案包含 /r/n)。 然后开始尝试其他的,在华为上也不起作用。
如何调试 read() 究竟为何阻塞?
在三星上它可以工作 100/100 次。 在其他情况下,达到 .read() 而不是 -1 的速度要慢 2/100 倍。
关于服务器的问题: (也许我在那里做错了) 发送响应后是否必须关闭套接字? (我不想建立实时连接,只需请求响应即可完成响应。) 目前,如果完成阅读,我将关闭客户端的套接字。 (但上面说过有时它从未完成或到达 .read())。
【问题讨论】:
-
数据写入完成后应关闭服务器端的socket。读取完数据后在客户端也一样。
-
好的,谢谢,那我试试这个。奇怪的是它有时会起作用......