Tomact—2020年4月26日
服务器 | 客户端 |
---|---|
自定义 S | 自定义 C |
Tomcat服务器 S | 浏览器 B |
1.2 UDP—2020年4月26日
发短信:不用连接,但需要对方的地址!
发送消息:
// 1.建立一个socket
DatagramSocket socket = new DatagramSocket();
// 2.建个包
String msg = "你好啊,服务器";
InetAddress localhost = InetAddress.getByName("localhost");
int port = 9999;
DatagramPacket packet = new DatagramPacket(msg.getBytes(),0,msg.getBytes().length,localhost,port);
// 3.发送包
socket.send(packet);
// 4.关闭资源
socket.close();
接收消息:
// 开放端口
DatagramSocket socket = new DatagramSocket(9999);
// 接收数据包
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer,0,buffer.length);//接收
socket.receive(packet);//阻塞接收
System.out.println(packet.getAddress().getHostAddress());
System.out.println(new String(packet.getData(),0,packet.getLength()));
// 关闭资源
socket.close();
循环发送消息:
DatagramSocket socket = new DatagramSocket(8888);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true){
String data = reader.readLine();
byte[] datas = data.getBytes();
DatagramPacket packet = new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",6666));
socket.send(packet);
if (data.equals("bye")){
break;
}
}
socket.close();
循环接收消息:
DatagramSocket socket = new DatagramSocket(6666);
while (true){
// 准备去接收
byte[] container = new byte[1024];
DatagramPacket packet = new DatagramPacket(container,0,container.length);
socket.receive(packet);//阻塞式接收包裹
// 断开连接
byte[] data = packet.getData();
String receiveData = new String(data,0,data.length);
System.out.println(receiveData);
if (receiveData.equals("bye")){
break;
}
socket.close();
学习地址:https://space.bilibili.com/95256449