网络编程地址获取,发送端实现,接受端实现

之前都是概念上的描述,现在是真正接触到网络编程。
InetAddress这个类来专门描述ip这类事物。网络编程使用的类都在java.net包下.这个类无法创建对象,只能通过静态来调用。
InetAddress.getByName("168.124.3.5");引号中可以是域名也可以是ip地址。
getHostAddress方法返回的是当前设备的ip地址。
getHostName方法返回的是当前设备的名字。

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class GuiDemo{
    public static void main(String[] args) throws IOException {
        InetAddress ip=InetAddress.getByName("168.124.3.5");
        String str=ip.getHostAddress();
        String name=ip.getHostName();
        System.out.println(str+"---"+name);
    }
}

我们想要在网络上进行通信只有ip地址是不行的,需要先创建两个套接字(socket)简称码头。
DatagramSocket类能够接收发送数据。
DatagramPacket对对象进行封包,拆包。

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class UpDemo {
    public static void main(String[] args) throws SocketException, IOException {
        // 创建发送端对象
        DatagramSocket ds = new DatagramSocket();
        // 准备数据
        String value = "UDP发送端发送的数据:aaa";
        byte[] bu = value.getBytes();
        // 封装一个ip对象
        InetAddress ip = InetAddress.getByName("130.4216.36");
        // 将数据进行打包
        DatagramPacket dp = new DatagramPacket(bu, bu.length, ip, 1029);
        ds.send(dp);
        ds.close();
    }
}

你可能感兴趣的:(网络编程地址获取,发送端实现,接受端实现)