- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个用 Java 编写的遗留服务器应用程序,在过去的六年里,它在运行 Java 6 的 Windows 2003 机器上运行良好。
我们最近将应用程序迁移到运行最新版本 java 的全新 windows 2008 机器上。
尽管该应用程序似乎运行良好,但存在一个奇怪的问题
代码 String remoteip=socket.getInetAddress().getHostAddress()
似乎返回服务器计算机的互联网 IP,而不是返回远程客户端的 IP。
在过去的 6 到 7 年里,这在 Linux 和 Windows 2003 机器上都能正常工作。
为了仔细检查所有设置,我在 IIS 上建立了一个小型 php 网站并打印了 REMOTE_ADDr 变量的值。它打印了客户端的正确 IP 地址。
关于什么可能会混淆 java 应用程序的任何线索?
最佳答案
Java 文档是这样说的:
getInetAddress()
Returns the local address of this server socket.
可能以前您在同一台机器上运行服务器和客户端。
更具体地说:您可能有一个 ServerSocket(sSocket) 等待来自客户端的连接。如果您调用 sSocket.getInetAddress(),您将获得服务器的 IP 地址。另一方面,ServerSocket 的作用是绑定(bind)到 IP 地址和端口并等待来自客户端的连接。当建立这样的连接时,sSocket.accept() 方法返回一个 Socket,它表示服务器与特定客户端 (cSocket) 的连接。调用 cSocket.getRemoteAddress() 返回客户端的 IP
关于java - socket.getInetAddress().getHostAddress() 奇怪的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592025/
我有以下一段代码来自一个函数,该函数将主机名作为输入并应该为该主机提取证书。我需要显示远程主机的 IP 地址。我使用“.getInetAdress()”返回远程主机的 IP:http://docs.o
我一直想知道是否可以覆盖 Java 的 socket.getInetAddress() 方法以提供与 /IP 不同的输出。例如,只是 IP。 我知道这是一个小改动,但有时更喜欢自定义格式。 这可以很容
我有一个用 Java 编写的遗留服务器应用程序,在过去的六年里,它在运行 Java 6 的 Windows 2003 机器上运行良好。 我们最近将应用程序迁移到运行最新版本 java 的全新 wind
我正在创建 TCP 套接字应用程序。在服务器端, ss = new ServerSocket(10000); Socket socket = ss.accept(); String remoteIp
我正在用C#开发一个http程序,同时引用了一些用Java编写的源代码!我想知道 getInetAddress() 方法是否有 C# 等效方法。换句话说,如何从 C# 中的套接字对象获取 IP 地址?
我有一个 Android 应用程序,它使用全部用 Java 编写的对象流连接到服务器。它曾经工作得很好,突然间没有任何改变,连接就会超时。我添加了一行来使用套接字在服务器端打印套接字连接到的地址。 g
我通过 MS Telnet 连接,这是我看到输出的地方。 我知道 0:0:0:0:0:0:0:0 是 ALL 或通配符...但是它从哪里得出 0:0:0:0:0:0:0:1 呢? 给我这个有什么意义?
我是一名优秀的程序员,十分优秀!