TCP
以下3个都继承自Object类
InetAddress:表示互联网协议 (IP) 地址
此类表示互联网协议 (IP) 地址 (第一次用,标签成对,表示结束)
public String getHostAddress()返回 IP 地址字符串(以文本表现形式)
在这里插入代码片
Socket:此类实现客户端套接字
//--------------------------------------------------------------------------------------------2
public InetAddress getInetAddress()返回此服务器套接字的本地地址
String ip = s.getInetAddress().getHostAddress();
在这里插入代码片
ServerSocket:此类实现服务器套接字
public Socket accept() 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
//--------------------------------------------------------------------------------------------1
ServerSocket ss = new ServerSocket(9999);
Socket s = ss.accept();
UDP
运行结果:
/**
* @AUTHOR ZHANG
* @data 2021/2/24 21:37
*/
public class UDPClient {
public static void main(String[] args) throws IOException {
//extends Object DatagramSocket此类表示用来发送和接收数据报包的套接字
DatagramSocket socket = new DatagramSocket();
//-----------------------------------------------------------------------
String str = "hello world!";
byte[] bytes = str.getBytes();
//类:extends Object InetAddress此类表示互联网协议 (IP) 地址
//方法:public static InetAddress getLocalHost() 返回本地主机
InetAddress inet = InetAddress.getLocalHost();
//public static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址
// InetAddress inet1 = InetAddress.getByName("");
//DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
// 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号
//buf - 包数据
//offset - 包数据偏移量。
//length - 包数据长度。
//address - 目的地址,本地主机
//port - 目的端口号
DatagramPacket datagramPacket = new DatagramPacket(bytes, 0, bytes.length, inet, 9999);
//发送
socket.send(datagramPacket);
socket.close();
}
}
在这里插入代码片
/**
* @AUTHOR ZHANG
* @data 2021/2/24 21:42
*/
public class UDPServer {
public static void main(String[] args) throws IOException {
DatagramSocket socket = new DatagramSocket(9999);
byte[] bytes = new byte[90];
DatagramPacket datagramPacket = new DatagramPacket(bytes, 0, bytes.length);
socket.receive(datagramPacket);
System.out.println(new String(datagramPacket.getData(),0,datagramPacket.getLength()));
socket.close();
}
}