繁体   English   中英

为什么此线程网络代码不起作用? (JAVA)

[英]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()
  • 指定适当的字符集,例如UTF-8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM