2013-10-10 93 views
0

我创建了一个普通的聊天程序,它只有一个服务器和一个客户端类。我在我的末端运行服务器。聊天客户端从不同的机器运行。在我的程序中,我已经指定了一个随机端口号,所有客户端都使用套接字连接来连接到运行在我的机器上的服务器。第一个问题是我必须禁用防火墙才能正常工作(可能是防火墙阻止了我提供的端口)。如何指定防火墙可以接受的端口号?我需要自己开一个端口吗?其次,禁用防火墙后,一切正常,但突然间,连接丢失。没有一个客户可以发送消息。这可能是什么原因?不确定是否由于我选择的端口而引起。聊天服务器停止工作

回答

1

您需要使用this.socket.setSoTimeout(timeOut); 正确设置套接字连接超时,以防止超时,这必定会导致连接丢失。

为了允许通过防火墙插座交际通过这个文件:http://windows.microsoft.com/en-US/windows7/Allow-a-program-to-communicate-through-Windows-Firewall

+0

防火墙一个工作!谢谢!我只需要分别添加该程序。关于超时,因为我使用的是Swing框架,你能否建议一种方法来保持套接字连接直到框架窗口关闭? – Mercenary