我正在创建TCP套接字应用程序。在服务器端,
ss = new ServerSocket(10000);
Socket socket = ss.accept();
String remoteIp = socket.getInetAddress().getHostAddress();
String RemotePort = ":"+socket.getLocalPort();
我对最后两行有些困惑,getInetAddress()用于返回套接字连接的地址,即主机的地址吗?然后为什么我们需要一个getHostAddress()?
socket.getInetAddress()
返回一个InetAddress
包含远程计算机IP地址的对象。
InetAddress.getHostAddress()
返回String
带有该地址文本表示形式的对象。
因此,最终String
可以打印,这就是您要执行的操作。
编辑: 如果您不熟悉,这称为“方法链接”。说的话是一样的:
InetAddress addy = socket.getInetAddress();
String remoteIp = addy.getHostAddress();
问题内容: 这个问题已经在这里有了答案 : java InetAddress.getLocalHost(); 返回127.0.0.1…如何获得REAL IP? (11个答案) 7年前关闭。 我的问题类似于这个问题。我想获取机器的真实IP(不是127.0.0.1),但是很奇怪,Ubuntu中的以下代码返回了127.0.1.1。 以下是我的完整代码,最初在此处发布在SO中 上面的代码返回127.0.1
问题内容: 首先,是的,这是给课堂上的作业,但是我对它如何运行的缺乏了解比我想要的要高。 我们给了3类,它们是以下: SLinkedList.java 节点java 包chapter3.linkedList; 和GameEntry.java 在过去的3个小时中,我一直在听他的演讲,阅读了文本(数据结构和算法第5版),并浏览了互联网论坛和youtube视频,但是我似乎对如何利用节点/链表类。 分配的
问题内容: Java中的ConcurrentHashMap和Hashtable有什么区别? 对于线程化应用程序,哪个更有效? 问题答案: 使用多个存储桶来存储数据。这样可以避免读取锁定,并大大提高了性能。两者都是线程安全的,但是使用显然可以赢得性能。 从using 读取时,没有锁,与之相反,所有操作都只是简单地同步了。 在Java的旧版本中发布,而Java 5+ 则是。 在单线程应用程序中使用是最
问题内容: 为什么要将数组的长度作为属性,而对于,我们有一个方法? 问题答案: 让我首先强调三种用于类似目的的不同方式。 - 阵列() -知道数组的长度 - 与字符串相关的对象(等)-了解字符串的长度 - 集合对象(等)-知道集合的大小 现在忘记考虑正义length和正义。 不是方法,因此完全无法在对象上使用是完全有意义的。它仅适用于数组。 它的名称更好地描述了它,并且因为它是一种方法,将在我上面
问题内容: 我使用Java(带有Spring框架),并希望在IPv4地址的数字表示形式(例如2130706433)和它们的文本形式(例如)之间进行转换。通常,以编程语言(通常分别称为和)提供用于执行此操作的方法,但我在Java中找不到它。 有人知道他们被称为什么或如何实现它们吗? 问题答案: 查看javadocs 中的InetAddress。这些功能不受标准API的直接支持,但是您可以使用此类提取
问题内容: 我试图将密码安全地存储在数据库中,为此,我选择存储使用PBKDF2函数生成的哈希值。我想使用弹性城堡库来执行此操作,但是我不知道为什么我无法通过使用JCE接口来使其工作…问题是,以三种不同的方式生成哈希值: 1.使用PBKDF2WithHmacSHA1秘密密钥由sun提供的工厂 。2.直接 使用有弹性的城堡api。3.通过JCE使用有弹性的城堡会 产生2个不同的值:前两个值相同,第三个