哎 作为一个项目的一部分,我不得不写一个小的IRC客户端嵌入其中。一切正常,直到程序关闭,从IRC通道读取输入的线程正在等待更多输入,永远不会死。
while(((inBuffer=in.readLine())!=null)&&(die==false))
inBuffer只是一个字符串,而且是套接字上的缓冲读卡器。 die变量是一个布尔值,我的想法是我可以将其设置为true,它将脱离线程。问题是“inBuffer = in.readLine()”坐在那里直到它得到另一条线 有人可以帮我一把吗?
答案 0 :(得分:4)
关闭in
信息流,readLine()
应立即返回null
。
答案 1 :(得分:0)
您可以在套接字上设置超时,如果出现超时异常,则可以轮询中止标志。如果没有设置,请再次尝试阅读。
答案 2 :(得分:0)
关闭套接字以进行输入。这将为null
调用提供readLine()
并终止循环。
答案 3 :(得分:-1)
忘了bufferedReader有一个“ready()”方法来测试缓冲区中是否有任何东西。测试这就行了。