Java 服务器和客户端程序仅在本地主机上连接

Java 服务器和客户端程序仅在本地主机上连接,java,sockets,Java,Sockets,所以我是网络编程新手,我做了一个服务器程序和一个客户端程序来连接到一个类项目的服务器。下面的代码是我用来连接这两个程序的代码 // SERVER SIDE CODE ServerSocket server = new ServerSocket(60060); Socket client = server.accept(); // do server stuff // CLIENT SIDE CODE int port = 60060; String ip = "127.0.0.1"; // S

所以我是网络编程新手,我做了一个服务器程序和一个客户端程序来连接到一个类项目的服务器。下面的代码是我用来连接这两个程序的代码

// SERVER SIDE CODE
ServerSocket server = new ServerSocket(60060);
Socket client = server.accept();
// do server stuff

// CLIENT SIDE CODE
int port = 60060;
String ip = "127.0.0.1";
// String ip = "10.227.50.95"; IP I would use if client is on different machine
Socket client = new Socket(ip, port);
// do client stuff
当我试图将服务器放在一台机器上,将客户端放在另一台机器上(注意,这是在同一个网络上),并将字符串ip更改为运行服务器的机器的ip时,我的客户端会冻结一分钟,然后抛出连接超时异常,我使用调试器发现实际上是我的套接字冻结,而不是某个地方的无限循环。我还关闭了装有服务器的计算机上的防火墙,但仍然发现了相同的结果。有人能解释一下套接字和服务器套接字吗?因为关于它们的文档对我帮助不大

更新:


我还没有机会检查我对防火墙所做的更改是否有效(另一台机器是我朋友的),但我注意到,当服务器和客户端在同一台机器上运行时,我不需要互联网让这两个程序进行通信。不确定这是否是一个问题的迹象,但我想说一下也无妨。

服务器上的防火墙可能是这个问题的原因。您是否接受服务器端的连接请求??是的,在我的服务器中,我有“Socket client=server.accept();”来接受客户端
字符串ip=“162.345.94.10”
。这不是一个无效的ip地址吗<那里不允许使用代码>345。该IP是由IP组成的,可能无效。然而,我的意图是显示我的问题,我不认为显示一个真实的ip是必要的,但如果这会有所帮助,我编辑了我的问题以显示一个有效的ip