之前都是概念上的描述,现在是真正接触到网络编程。
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();
}
}
网友评论