首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >socket.getInetAddress().getHostAddress()奇怪的问题

socket.getInetAddress().getHostAddress()奇怪的问题
EN

Stack Overflow用户
提问于 2012-07-21 20:06:22
回答 1查看 2K关注 0票数 1

我有一个用java编写的遗留服务器应用程序,它在运行java6的windows2003机器上已经运行了六年。

我们最近将应用程序迁移到一台全新的windows2008机器上,运行最新版本的java。

尽管这个应用程序看起来运行良好,但有一个奇怪的问题

代码String remoteip=socket.getInetAddress().getHostAddress()似乎返回服务器机器的互联网IP,而不是返回远程客户端的IP。

在过去的6-7年里,它在Linux和Windows2003机器上都能正常工作。

为了仔细检查所有的设置,我在IIS上建立了一个小的php网站,并打印出了REMOTE_ADDr变量的值。它会打印出客户端的正确IP地址。

有什么会让java应用程序感到困惑的线索吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-21 20:12:28

Java文档这样写道:

代码语言:javascript
复制
 getInetAddress()
 Returns the local address of this server socket.

可能以前您在同一台机器上运行服务器和客户端。

更具体地说:您可能有一个ServerSocket(sSocket)在等待来自客户端的连接。如果调用sSocket.getInetAddress(),您将获得服务器的IP地址。另一方面,ServerSocket的作用是绑定到IP地址和端口,并等待来自客户端的连接。当建立这样的连接时,sSocket.accept()方法返回一个套接字,该套接字表示服务器与该特定客户端(cSocket)的连接。调用cSocket.getRemoteAddress()将返回客户端的IP

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11592025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档