网络编程#

ipconfig获取ip地址

InetAddress

 

public static InetAddress getLocalHost()
作用:获取本机网络信息对象

public static InetAddress getByName(String host)
作用:获取指定的计算机的网络信息对象
参数:
    也可填ip,也可以填设备名称,也可以填网址
    
public static InetAddress[] getAllByName(String host)
作用:获取指定的计算机的所有网络信息对象
参数:
    也可填ip,也可以填设备名称,也可以填网址
    
public String getHostName()
作用:获取设备名称

public String getHostAddress()
作用:获取ip地址

 

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetAddressExample {
    public static void main(String[] args) {
        try {
            // 获取本机网络信息对象
            InetAddress localHost = InetAddress.getLocalHost();
            System.out.println("本机设备名称:" + localHost.getHostName());
            System.out.println("本机IP地址:" + localHost.getHostAddress());

            // 获取指定计算机的网络信息对象
            String hostname = "www.example.com";
            InetAddress inetAddress = InetAddress.getByName(hostname);
            System.out.println(hostname + " 设备名称:" + inetAddress.getHostName());
            System.out.println(hostname + " IP地址:" + inetAddress.getHostAddress());

            // 获取指定计算机的所有网络信息对象
            InetAddress[] allAddresses = InetAddress.getAllByName(hostname);
            System.out.println(hostname + " 的所有IP地址:");
            for (InetAddress address : allAddresses) {
                System.out.println(address.getHostAddress());
            }
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }
}

//获取本地主机的 IP 地址:
InetAddress localHost = InetAddress.getLocalHost();
String ipAddress = localHost.getHostAddress();
System.out.println("本地主机的 IP 地址:" + ipAddress);

//通过主机名获取 IP 地址:
String hostname = "www.example.com";
InetAddress inetAddress = InetAddress.getByName(hostname);
String ipAddress = inetAddress.getHostAddress();
System.out.println(hostname + " 的 IP 地址是:" + ipAddress);

//通过 IP 地址获取主机名:
String ipAddress = "192.168.0.1";
InetAddress inetAddress = InetAddress.getByName(ipAddress);
String hostname = inetAddress.getHostName();
System.out.println(ipAddress + " 对应的主机名是:" + hostname);

//检查 IP 地址是否可达:
String ipAddress = "192.168.0.1";
InetAddress inetAddress = InetAddress.getByName(ipAddress);
boolean isReachable = inetAddress.isReachable(5000); // 设置超时时间为5000毫秒
if (isReachable) {
    System.out.println(ipAddress + " 是可达的");
} else {
    System.out.println(ipAddress + " 是不可达的");
}

 

TCP协议

面向有连接,安全的协议,3次握手,4次挥手,效率较低

UDP协议

面向无连接,不安全的协议,一次只能发送最多64kb的数据,有可能会丢失,效率高

IP

作用:计算机在互联网中的地址

IPV4:
    4段,每段取值0~255
    如:
        10.35.181.12
IPV6
    8段,每段取值0~65535

回环地址 :  127.0.0.1:本机     localhost:本机

Port:端口

作用:软件在计算机中的地址

取值范围:0~65535

其中:0~2048被系统占用

常见的端口:

80:http协议的端口
8080:Tomcat默认的端口号
3306:MySQL数据库默认端口号
 

Socket

TCP编程
服务器编程

步骤:

1,创建服务器端Socket
2,等待客户端连接
3,接收客户端消息或给客户端回馈消息
4,关闭资源


        int serverPort = 8080;

        try {
            // 创建服务器套接字并监听指定端口
            ServerSocket serverSocket = new ServerSocket(serverPort);
            System.out.println("Server listening on port " + serverPort + "...");

            // 等待客户端连接
            Socket socket = serverSocket.accept();
            System.out.println("Client connected: " + socket.getInetAddress().getHostAddress());

            // 接收客户端发送的数据
            InputStream inputStream = socket.getInputStream();
            byte[] buffer = new byte[1024];
            int length = inputStream.read(buffer);
            String message = new String(buffer, 0, length);
            System.out.println("Received message from client: " + message);

            // 向客户端发送响应数据
            OutputStream outputStream = socket.getOutputStream();
            String response = "Hello, client!";
            outputStream.write(response.getBytes());

            // 关闭连接
            socket.close();
            serverSocket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
  


 

客户端编程

步骤:

1,创建客户端Socket
2,给服务器发送或结束服务器的消息
3,关闭资源 


        String serverIP = " ";
        int serverPort = 8080;

        try {
            // 建立与服务器的连接
            Socket socket = new Socket(serverIP, serverPort);

            // 发送数据到服务器
            OutputStream outputStream = socket.getOutputStream();
            String message = "Hello, server!";
            outputStream.write(message.getBytes());

            // 接收来自服务器的响应
            InputStream inputStream = socket.getInputStream();
            byte[] buffer = new byte[1024];
            int length = inputStream.read(buffer);
            String response = new String(buffer, 0, length);
            System.out.println("Received response: " + response);

            // 关闭连接
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    

 

UDP编程
接收端

步骤

1,创建接收端Socket
2,创建数组准备接收数据
3,创建数据包接收数据
4,接收数据
5,获取接收到的数据与接收到的数据长度
6,关闭资源 


        int serverPort = 8080;

        try {
            // 创建UDP套接字并绑定到指定端口
            DatagramSocket socket = new DatagramSocket(serverPort);
            System.out.println("Receiver listening on port " + serverPort + "...");

            // 创建接收数据的数据报
            byte[] receiveData = new byte[1024];
            DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);

            // 接收数据报
            socket.receive(receivePacket);
            String message = new String(receivePacket.getData(), 0, receivePacket.getLength());
            System.out.println("Received message: " + message);

            // 关闭套接字
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    

 

发送端

步骤 

1,创建发送端Socket
2,准备发送的数据
3,接收端计算机信息
4,创建数据包
5,发送数据包
6,关闭资源


        String serverIP = "192.168.0.1";
        int serverPort = 8080;

        try {
            // 创建UDP套接字
            DatagramSocket socket = new DatagramSocket();

            // 准备要发送的数据
            String message = "Hello, server!";
            byte[] sendData = message.getBytes();
            InetAddress serverAddress = InetAddress.getByName(serverIP);

            // 创建数据报
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, serverAddress, serverPort);

            // 发送数据报
            socket.send(sendPacket);
            System.out.println("Message sent to server.");

            // 关闭套接字
            socket.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值