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

时间:2009-07-06 18:24:53

标签: java multithreading networking client-server

服务器代码:

http://stikked.com/view/64826511

客户网络代码:

http://stikked.com/view/38974838

基本上,客户端连接到服务器,但除此之外,它不起作用。发送消息时,客户端的System.out.println指示GUI正在调用正确的函数。但没有迹象表明服务器曾接受过输入。如果我telnet到服务器,它可以正常运行。

这是我对线程代码和java网络的第一次独立尝试。到目前为止,我的大多数编程都是网络应用程序或非常简单的桌面应用程序(例如计算器)。

(如果您的答案是“您做错了”,请指向客户端服务器程序的正确教程,客户端和服务器都可以随时发送消息。我看过的所有教程都有客户端执行一些硬编码命令,然后退出)

1 个答案:

答案 0 :(得分:3)

两个直接问题 - 您正在使用PrintWriter,这意味着如果它实际上无法与服务器通信,它将不会抛出任何异常。你也没有打电话给flush(),所以它可能只是缓冲数据。

我建议:

  • 使用OutputStreamWriter代替PrintWriter,并适当处理异常。这也将消除缓冲。您可能希望将其打包在BufferedWriter中,然后在“完成”消息后调用flush()
  • 指定适当的字符集,例如UTF-8。
相关问题