我在java中实现了一个Client-Server应用程序。服务器可以为多个客户端提供服务,我想测试一下,但我对网络的了解很少,我需要一种方法来测试我家的应用程序。
我有一个rooter,它连接了我的两台计算机。我在java中的“server”类使用给定端口上的本地主机(127.0.0.1)作为主机。
如果
,我该如何测试我的程序?有什么想法吗?
答案 0 :(得分:2)
为在同一台计算机上运行的客户端和服务器使用唯一端口。另外127.0.0.1是localhost(该机器的内部)。计算机B无法与计算机A上的127.0.0.1通信。如果所有应用程序或在同一台计算机上,则使用127.0.0.1。如果希望外部计算机能够与服务器通信,请使用计算机实际IP地址。
答案 1 :(得分:0)
如果你运行绑定到IP 127.0.0.1
的服务器,你没有打开它到网络,只有你自己的计算机能够连接到它,访问127.0.0.1
(环回IP地址)。 / p>
要将此服务器打开到网络,您必须执行以下两项操作之一:
0.0.0.0
,以便所有网络都可以访问; 通常的做法是将其绑定到0.0.0.0
,这更容易。
完成后,您将能够从其他计算机连接到计算机A上运行的服务器,但不能通过IP 127.0.0.1
。这是环回地址,只能由计算机用于连接本身。
计算机A可以使用IP 127.0.0.1
连接到服务器,因为服务器正在其上运行,但其他网络计算机必须指定计算机A的网络IP地址。
您可以在网络适配器详细信息中找到您的IP地址,或在命令提示符(Windows)或ipconfig /all
(Linux)上运行命令ifconfig
。
答案 2 :(得分:0)
当客户端和服务器位于同一台计算机上时,您所做的事情必须已经在运行。 要从另一台计算机连接,您需要找到服务器的“真实”IP地址。
如果您使用的是Windows,请在计算机A上打开命令shell,然后运行ipconfig
。在unix / linux / mac上,运行ifconfig
。
查找一个字符串,看起来像一个IP地址,但不 127.0.0.1,如果你连接到网络,则必须有另一个字符串,可能看起来像10.0.0。或192.168。< 0或1> ..
在任何地方使用此地址而不是127.0.0.1
答案 3 :(得分:0)
完整的TCP连接由两个不同的端点组成。连接的服务器端是一个端点(它将在该端点上执行 listen )。当客户端创建它的连接端(客户端套接字)时,它将对服务器ip:port组合进行连接并获取一系列所谓的号码"短暂"端口。
连接的两端具有相同的IP地址这一事实并不重要 - 完整连接由两个不同的元素(地址:端口组合)定义。
FirstClient与服务器的连接将是ServerIP:ServerPort< - > Client1_IP:Client1_Port,SecondClient的连接将是ServerIP:ServerPort< - > Client2_IP:Client2_Port。网络层可以区分这些(它们是两个不同的连接流),并将流量路由到该流的适当发送方/接收方。