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

时间:2017-04-23 05:04:57

标签: 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";
// 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

当我尝试将服务器放在一台机器上,而客户端放在另一台机器上时(注意这是在同一网络上),并将String ip更改为运行服务器的机器的ip,我的客户端冻结了一分钟,然后抛出一个连接超时异常,我使用调试器发现它实际上是我的Socket冻结,而不是一个无限循环。我还使用服务器在我的机器上关闭了防火墙,但仍然找到了相同的结果。有人可以解释套接字和ServerSockets吗?因为关于它们的文档对我没有多大帮助。

更新

我没有机会检查我对防火墙所做的更改是否有效(另一台机器是我朋友的),但我注意到当服务器和客户端在同一台机器上运行时,我不知道这两个程序需要互联网才能进行通信。不确定这是否是一个问题的迹象,但认为提起它并不会有什么坏处。

0 个答案:

没有答案