package cn.tedu.net.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.util.Scanner;
//简易聊天室---线程
public class TestDemo {
public static void main(String[] args) {
//创建线程对象开启线程
new Thread(new Sender()).start();
new Thread(new Receiver()).start();
}
}
//定义类---代表线程执行任务信息(发送端)
class Sender implements Runnable{
//发送过程
@Override
public void run() {
try {
//创建UDP发送端对象
DatagramSocket ds=new DatagramSocket();
//创建Scanner对象
Scanner sc=new Scanner(System.in);
//保证一直可以发送数据
while (true){
//准备发送数据
byte[]bs=sc.nextLine().getBytes();
//创建数据包
DatagramPacket dp=new DatagramPacket(bs,bs.length,
new InetSocketAddress("176.203.104.108" ,9090));
//发送数据包
ds.send(dp);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
//定义类---代表线程执行任务信息(接收端)
class Receiver implements Runnable{
//指定接收过程
@Override
public void run() {
//创建UDP接受端对象---监听端口号
try {
DatagramSocket ds=new DatagramSocket(9090);
//创建接收数据的数据包对象
DatagramPacket dp=new DatagramPacket(new byte[1024],1024);
//保证可以一直接收数据
while (true){
//接收数据
ds.receive(dp);
//解析数据包
System.out.println(dp.getAddress());
System.out.println(new String(dp.getData(),
0,dp.getLength()));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
通过UDP实现简单的聊天室Java原码(线程实现)
最新推荐文章于 2024-05-30 19:58:00 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)