启动一个服务器的时候,服务器端需要做Socket的绑定,以前没有仔细的研究过这一块的API,今天做了一些研究,特此记录
按照一般的思路,绑定一个Socket,首先要查找到本机的IP地址,查找本机的IP地址有两种思路:
1、是直接取物理设备的信息,然后去筛选;
优点:绝对不会漏IP
缺点:不能直接定位想取的IP,可能会取到虚拟机的IP,外网IP、内网IP一堆IP
2、是用Java的API;
第一个API是根据本机名来取IP,第二个API是根据localhost来取API,这两个API最后都会在本机的hosts里找映射的IP,windows是%系统盘%/system32/drivers/etc/hosts,linux是/etc/hosts。本机名和localhost在hosts文件里的配置会直接影响到API取出的IP
3、构建一个Socket去连接别的网站,然后通过创建的socket获得本机的IP,这种做法不太优雅,但是可行性比较高,可以保证取到外网IP
但是事实上,启动一个服务器应用并不需要获知本机的IP地址,这里来自协议的限定是,TCP是端到端的连接,这里的端到端是TCP端到TCP端的连接,对于一个服务器来说,TCP端也就是网卡,由于服务器通常都有多个网卡,所以对于绑定IP的Socket,只有发往特定服务器特定网卡的消息,才能被Socket所接收。但是操作系统在协议的基础上做出了更多的支持,在linux上,用netstat -ap 可以看到服务器网卡上监听的情况,Local Address *:54321,这里的*代表监听当前服务器上所有网卡接收的到的54321端口的消息。
结论:启动一个服务器,不需要知道本机的IP,只需要绑定端口,剩下的工作,交给操作系统,操作系统会把没有指定IP的socket绑定到机器上的所有IP上。
分享到:
相关推荐
Java 自动获取本机IP和MAC地址是一项常见的需求,在网络编程和系统管理中经常会用到。这个小工具利用了Java的网络和系统API,能够帮助用户便捷地查看本机的网络配置信息。以下是对相关知识点的详细说明: 1. **Java...
【Get My IP Address Software.exe】是这个工具的可执行文件,用户只需运行这个文件,即可启动IP地址获取器。在运行过程中,软件会自动检测并显示用户的公网IP以及可能的局域网IP。这通常涉及到发送一个请求到特定的...
标题 "windows本机IP定时上报到服务器" 描述中提到的是一个使用Java编程语言实现的系统功能,通过Socket通信协议,使Windows操作系统上的客户端能够定期将本地IP地址报告给远程服务器。这个系统的关键组成部分可能...
- **问题描述**:如果iDRAC的IP地址与其他设备的IP地址冲突,则可能会导致无法访问iDRAC。 - **解决方案**: - 重新配置iDRAC的IP地址,使其不与其他设备冲突。 - 考虑使用不同的网段(如192.168.10.x),以减少...
在获取了数据库中的IP地址之后,该脚本还尝试将此IP地址分配给名为`enp3s0`的网络接口。这种操作通常用于自动配置网络接口的IP地址,以便于动态调整或简化部署过程。 #### 详细解释: - **`ipconfig`命令**: - 在...
DHCP 服务器无法获取 IP 地址问题解决实录 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种标准的网络协议,用于动态分配 IP 地址和其他网络参数。DHCP 服务器是网络中的一种设备,负责分配 ...
本篇将基于提供的文件信息——“自动获取IP地址”这一主题进行深入探讨,包括其背景、实现原理、应用场景以及具体的命令行操作方法等。 #### 一、背景介绍 IP地址是互联网协议地址(Internet Protocol Address)的...
可以使用`gethostbyname()`函数获取主机信息,然后从中提取本机IP地址。或者使用`GetAdaptersInfo()`或`GetHostAddresses()`函数,它们提供了更现代的接口。 10. **对话框界面设计**: 在VC++的MFC(Microsoft ...
在IT行业中,代理IP(代理Internet Protocol)是一种网络通信技术,它允许设备通过另一台服务器(代理服务器)来访问互联网,从而隐藏真实的IP地址。这种技术有多种用途,包括提高网络安全、匿名浏览、数据抓取以及...
此文件安装过后本机即是服务器,本机与本机可以交互; 一、针对本机作为服务器; 步骤: 1、先启动服务:点击“先去管理服务” 2、再“前去会话”,进入会话界面之后,先点击连接;即可在下方输入内容,返送; 二...
当设备的IP地址设置为自动获取(DHCP)时,可能会出现IP冲突或者无法与服务器稳定通信的情况,此时,IP扫描工具就能派上用场,它能帮助我们快速扫描局域网内所有可能的IP地址,找出旷视人脸识别主机的准确位置。...
在本篇文章中,我们将深入探讨如何使用Java语言来获取IP地址。这是一项在网络编程中非常基础且重要的技能,能够帮助开发者了解客户端或服务器的网络位置信息。以下是对给定文件中的代码进行的详细解析。 #### 标题...
默认情况下,iLO可能配置为从DHCP服务器获取IP地址,这在多变的网络环境中可能是合适的。但为了保证稳定的远程访问,你可能希望设置一个静态IP地址。为此,将IP地址改为一个符合网络规划的地址,确保该IP在你的网络...
在本场景中,我们关注的是如何使用SNMP来获取服务器信息。 首先,理解SNMP的基本概念是至关重要的。SNMP由三部分组成:管理站(Manager)、代理(Agent)和管理信息库(MIB)。管理站是负责收集和处理信息的设备,...
在日常的网络维护工作中,我们经常会遇到客户端无法通过DHCP服务自动获取IP地址的问题。这种情况不仅会影响用户的正常使用,也会增加网络管理员的工作负担。本文将详细介绍导致这一问题的原因及相应的解决方法。 ##...
RTX服务器端,需要运行一个服务端程序RTXIPS.EXE,或者在RTX管理器中:应用管理器,启动RTX应用管理器,添加应用,这样启动RTX服务器是就不需要单独启动了。 可以单独使用。服务器程序只能在RTX服务器上使用。 客户端...
Linux 自动获取 IP 地址及配置静态 IP 地址上网 在 Linux 系统中,自动获取 IP 地址和配置静态 IP 地址上网是非常重要的网络配置步骤。下面我们将详细介绍如何实现自动获取 IP 地址和配置静态 IP 地址上网。 第一...
4. 在这里,你可以手动设定IP地址、子网掩码、默认网关以及DNS服务器。填好IP地址后,点一下子网掩码的输入栏,系统通常会自动填写正确的子网掩码(如255.255.255.0)。 5. 确保设置的IP地址与路由器或交换机在同一...