[英]Why doesn't this threaded network code work? (Java)
服务器代码:
http://stikked.com/view/64826511
客户端的网络代码:
http://stikked.com/view/38974838
基本上,客户端连接到服务器,但除此之外,它不起作用。 发送消息时,客户端的System.out.println指示GUI正在调用正确的函数。 但是没有迹象表明服务器曾经收到过输入。 如果我通过telnet连接到服务器,则它可以正常运行。
这是我在线程代码和Java网络方面的首次尝试。 到目前为止,我的大部分编程工作都是网络应用程序或非常简单的桌面应用程序(例如,计算器)。
(如果您的回答是“您做错了所有事情”,请指向客户端服务器程序的正确教程,客户端和服务器都可以随时发送消息。我所见过的所有教程都让客户端执行了几个硬编码的命令,然后退出)
紧迫的两个问题-您正在使用PrintWriter
,这意味着如果它实际上无法与服务器通信,它将不会引发任何异常。 您也不在调用flush()
,因此它很可能只是在缓冲数据。
我会建议:
OutputStreamWriter
而不是PrintWriter
,并适当处理异常。 这也将删除缓冲。 您可能希望将其包装在BufferedWriter
,然后在完成“处理”消息后调用flush()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.