【发布时间】:2012-05-21 10:07:27
【问题描述】:
我目前正在为一个项目编写简单的网络代码,一位伙伴向我暗示,当我以迭代方式从服务器向所有客户端发送一包信息时,当其中一个客户端运行时,我可能会出现严重的延迟。没有正确响应。
他以拖钓而闻名,所以我在实现一个辅助线程时有点怀疑,该线程现在负责将数据发送到客户端,有一个队列,服务器只需将包添加到该队列上,然后由线程读取到发送数据。
我现在思考后的问题是天气与否Java Socket的OutputStream实际上将他想要发送的东西排队,从而预先消除了排队的需要。只有当服务器阻塞时,只要他没有从客户端收到发送对象已收到的响应,就会出现严重问题的可能性。
谢谢。
【问题讨论】:
-
如果我尝试在线程的运行函数中获取输出或输入流,我遇到了类似的问题。套接字阻塞(对于getInputStream和getOutputStream)的问题是因为它在run函数中......解决方案似乎是将它放在构造函数中,保存变量然后在run中引用变量。
标签: java sockets implementation blocking outputstream