【问题标题】:Java - TCP connectionJava - TCP 连接
【发布时间】:2016-11-05 22:03:36
【问题描述】:

我现在正在开发一个简单的程序来使用 Java 通过 TCP 发送文件。我有一个问题,我无法在计算机之间连接(我正在使用路由器和本地 IP 地址测试应用程序)。

我通过以下方式开始连接:

sendSocket = new Socket(sendIp, port);

我正在尝试通过以下方式在下一台 PC 上接收连接:

servsock = new ServerSocket(port);  
recieveSocket = servsock.accept();

在哪里 端口是 12222, sendIp 是 169.254.5.47(接收的第二台计算机)

myIP 是 192.168.0.52(发送的计算机)

我做错了什么?
我总是使用相同的端口,我在 TCPView 上看到 java 应用程序使用该端口。 也许我分配了错误的 IP,或者我的防火墙以某种方式阻止了。

最好的问候和感谢, 克里斯

【问题讨论】:

  • 他们似乎不是同一个网络的一部分,对吧?
  • 在测试您的应用程序之前先验证连接性,因为发送者和目标'IP 不在同一个局域网中。 Telnet 是一个方便的测试工具。

标签: java sockets tcp serversocket


【解决方案1】:

如果这是一个 Windows 网络,IP 169.254.5.47 意味着主机没有从 DHCP 获得有效的 IP 地址。在标准本地网络中,两个地址应位于相同的 C 类范围 (192.168.0.*)。

您必须首先解决您的网络的这个物理问题并使用 ping 测试它(每个主机应该能够 ping 对方并查看回复)。

【讨论】:

  • 你是对的。我检查了路由器上的IP地址,我能够建立连接。问题是在第二台计算机上,java 应用程序返回的 IP 与其不同。我为此使用: myIp = InetAddress.getLocalHost().getHostAddress();有可能修复它吗?谢谢你,克里斯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2012-12-06
  • 1970-01-01
相关资源
最近更新 更多