IP地址与端口概念
步骤1:IP地址
步骤2:端口
步骤3:获取本机IP地址
步骤4:ping命令
步骤5:使用java 执行ping命令
步骤6:练习-判断本网段有多少可用的ip地址
步骤7:答案-判断本网段有多少可用的ip地址
步骤 1 : IP地址
在网络中每台计算机都必须有一个的IP地址;
32位,4个字节,常用点分十进制的格式表示,例如:192.168.1.100
127.0.0.1 是固定ip地址,代表当前计算机,相当于面向对象里的 "this"
![IP地址](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zdGVwaW1hZ2V3bS5ob3cyai5jbi84ODAucG5n?x-oss-process=image/format,png)
步骤 2 : 端口
两台计算机进行连接,总有一台服务器,一台客户端。
服务器和客户端之间的通信通过端口进行。如图:
ip地址是 192.168.1.100的服务器通过端口 8080
与ip地址是192.168.1.189的客户端 的1087端口通信
![端口](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zdGVwaW1hZ2V3bS5ob3cyai5jbi84ODEucG5n?x-oss-process=image/format,png)
步骤 3 : 获取本机IP地址
![获取本机IP地址](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zdGVwaW1hZ2V3bS5ob3cyai5jbi8yNzE2LnBuZw?x-oss-process=image/format,png)
package socket; import java.net.InetAddress; import java.net.UnknownHostException; public class TestSocket { public static void main(String[] args) throws UnknownHostException { InetAddress host = InetAddress.getLocalHost(); String ip =host.getHostAddress(); System.out.println( "本机ip地址:" + ip); } } |
步骤 4 : ping命令
使用ping判断一个地址是否能够到达
ping不是java的api,是windows中的一个小工具,用于判断一个地址的响应时间
如图
ping 192.168.2.106 可以返回这个地址的响应时间 time<1ms表示很快,局域网一般就是这个响应时间
ping 192.168.2.206 返回Request timed out表示时间较久都没有响应返回,基本判断这个地址不可用
![ping命令](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zdGVwaW1hZ2V3bS5ob3cyai5jbi8yNzE3LnBuZw?x-oss-process=image/format,png)
步骤 5 : 使用java 执行ping命令
借助 Runtime.getRuntime().exec() 可以运行一个windows的exe程序
如图,使用java运行 ping 192.168.2.106,返回这样的字符串
![使用java 执行ping命令](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zdGVwaW1hZ2V3bS5ob3cyai5jbi8yNzE4LnBuZw?x-oss-process=image/format,png)
package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class TestSocket { public static void main(String[] args) throws IOException { Process p = Runtime.getRuntime().exec( "ping " + "192.168.2.106" ); BufferedReader br = new BufferedReader( new InputStreamReader(p.getInputStream())); String line = null ; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null ) { if (line.length() != 0 ) sb.append(line + "\r\n" ); } System.out.println( "本次指令返回的消息是:" ); System.out.println(sb.toString()); } } |
更多内容,点击了解: https://how2j.cn/k/socket/socket-ip-port/399.html