我创建了一个普通的聊天程序,它只有一个服务器和一个客户端类。我在最后运行服务器。聊天客户端从不同的计算机运行。在我的程序中,我已经指定了一个随机端口号,所有客户端都使用套接字连接来连接到我的机器上运行的服务器。第一个问题是我要禁用防火墙以使其正常工作(可能是防火墙阻止我给出的端口)。如何指定防火墙可以接受的端口号?我自己必须打开一个端口吗?
其次,在禁用防火墙后,一切正常但突然之间,连接丢失了。没有客户端可以发送消息。可能的原因是什么?不确定是否是由于我选择的端口引起的。
答案 0 :(得分:1)
您需要使用this.socket.setSoTimeout(timeOut);
正确设置套接字连接超时
防止必须导致连接丢失的超时。
为了允许通过防火墙进行套接字通信,请阅读以下文档:http://windows.microsoft.com/en-US/windows7/Allow-a-program-to-communicate-through-Windows-Firewall