IP地址:127.0.0.1

本文详细解释了回送地址127.0.0.1的概念及其在计算机网络测试中的重要作用。通过实例说明了如何使用此地址进行本地网络配置验证,并探讨了IP地址的组成与分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      本文摘自百度百科,点击打开链接

      127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输     

       IP地址由两部分组成,即网络地址主机地址网络地址表示其属于互联网的哪一个网络,主机地址表示其属于该网络中的哪一台主机。二者是主从关系。IP地址的四大类型标识的是网络中的某台主机。IPv4的地址长度为32位,共4个字节,但实际中我们用点分十进制记法。

      在有类IP地址的规定中,第一部分是1~126为A类地址,128~191为B类地址,那么中间留的127.0.0.1被称为本地回环地址,主要作用有两个:一是测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题;另一个作用是某些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源,一般要指定SERVER的IP地址,但当该程序要在同一台机器上运行而没有别的SERVER时就可以把SERVER的资源装在本机,SERVER的IP地址设为127.0.0.1也同样可以运行。

大家常用“ping 127.0.0.1”命令在本机上做回路测试,用来验证本机的 TCP/IP协议簇是否被正确安装。但你发现了吗?使用“ping 127.1”这个命令也能得到同样的测试结果,其实“ping 127.1”和“ping 127.0.0.1”这两条命令是一样的,都是在进行回路测试。
为什么会这样呢?这就是Ping命令应用中IP地址的使用技巧。大家都知道,IP地址由32位二进制数字组成,为了方便大家记忆,将每8位二进制数字换算成十进制数字,因此就形成了容易记忆的由四部分十进制数字组成的IP地址(如127.0.0.1)。由于,Windows 操作系统具有自动填充 “.0”的功能,因此我就可将“127.0.0.1”变为“127.1”。
但是,这个“.0”的省略是有条件限制的,并不能任意省略。在Ping命令的应用中,只能将在IP地址的最后一部分十进制数字前出现的一个或多个“.0”省略,如把“ping 127.0.0.1”命令改写成“ping 127.1”。

好的,以下是Java代码实现: 服务器端: ```java import java.io.*; import java.net.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { serverSocket = new ServerSocket(8889, 10, InetAddress.getByName("127.0.0.1")); System.out.println("服务器已启动,等待客户端连接..."); } catch (IOException e) { System.out.println("服务器启动异常:" + e.getMessage()); System.exit(1); } Socket clientSocket = null; try { clientSocket = serverSocket.accept(); System.out.println("客户端连接成功,地址为:" + clientSocket.getInetAddress().getHostAddress()); } catch (IOException e) { System.out.println("客户端连接异常:" + e.getMessage()); System.exit(1); } PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("客户端发送数据:" + inputLine); out.println("服务端已收到数据:" + inputLine); if (inputLine.equals("Bye.")) { break; } } out.close(); in.close(); clientSocket.close(); serverSocket.close(); } } ``` 客户端: ```java import java.io.*; import java.net.*; public class Client { public static void main(String[] args) throws IOException { Socket socket = null; PrintWriter out = null; BufferedReader in = null; try { socket = new Socket("127.0.0.1", 8889); out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); } catch (UnknownHostException e) { System.out.println("未知的主机地址:" + e.getMessage()); System.exit(1); } catch (IOException e) { System.out.println("无法连接到服务器:" + e.getMessage()); System.exit(1); } BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in)); String userInput; while ((userInput = stdIn.readLine()) != null) { out.println(userInput); System.out.println("发送数据:" + userInput); System.out.println("服务端返回数据:" + in.readLine()); if (userInput.equals("Bye.")) { break; } } out.close(); in.close(); stdIn.close(); socket.close(); } } ``` 当客户端运行后,输入"Hello Server!",即可与服务器进行通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值