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

之前都是概念上的描述,现在是真正接触到网络编程。
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();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容