import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException; //群聊发送端
public class ChatSender extends Thread { @Override
public void run() {
try {
//建立udp的服务
DatagramSocket socket = new DatagramSocket();
//准备数据,把数据封装到数据包中发送
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
DatagramPacket packet = null;
while((line = keyReader.readLine())!=null){
//把数据封装 到数据数据包中,然后发送数据。
packet = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName("192.168.15.255"), 9090);
//把数据发送出去
socket.send(packet);
}
//关闭 资源
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
} }
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException; //群聊接收端
public class ChatReceive extends Thread { @Override
public void run() {
try {
//建立udp的服务,要监听一个端口
DatagramSocket socket = new DatagramSocket(9090);
//准备空的数据包存储数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
boolean flag = true;
while(flag){
socket.receive(packet);
// packet.getAddress() 获取对方数据 包的IP地址对象。
System.out.println(packet.getAddress().getHostAddress()+"说:"+new String(buf,0,packet.getLength()));
}
//关闭资源
socket.close(); }catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }
public class ChatMain {

    public static void main(String[] args) {
ChatReceive chatReceive = new ChatReceive();
chatReceive.start(); ChatSender chatSender = new ChatSender();
chatSender.start(); } }

最新文章

  1. sqoop:Failed to download file from http://hdp01:8080/resources//oracle-jdbc-driver.jar due to HTTP error: HTTP Error 404: Not Found
  2. install keepalived on RedHat/CentOS to provide IP failover for web cluster
  3. 通过Javascript模拟登陆Windows认证的网站
  4. asp.net网站性能优化2则
  5. C# DbHelperSQLite,SQLite数据库帮助类 (转载)
  6. .net RAW(16)与GUID互相转换
  7. Struts2 模型驱动及页面回显
  8. Linux读取文件路径问题
  9. VirtualBox开发环境的搭建详解
  10. LeetCode——Search a 2D Matrix
  11. 救援行动(save)
  12. 负载均衡软件LVS分析二(安装)
  13. fs模块(二)
  14. SQL Server 文章目录
  15. 通过代码配置 Log4net来实现日志记录
  16. 十倍效能提升——Web 基础研发体系的建立
  17. XStream
  18. 存储那些事儿(一):异构虚拟化一种实现SMIS
  19. Android BLE与终端通信(二)——Android Bluetooth基础科普以及搜索蓝牙设备显示列表
  20. System.InvalidOperationException:“线程间操作无效: 从不是创建控件“btnSearch”的线程访问它。

热门文章

  1. Oracle打怪升级之路一【Oracle基础、Oracle查询】
  2. 最简短的 AC 自动机!
  3. 基于GO语言实现的固定长度邀请码
  4. linux(CentOS7) 之 jdk1.8 下载及安装
  5. JMeter_用户自定义变量
  6. nginx配置指定域名访问,nginx禁止ip访问,配置空主机头 syscal
  7. Visual Studio 设置背景图片主题(所有版本设置方法)
  8. Echart可视化学习(一)
  9. SSM实现支付宝支付
  10. 最新RabbitMQ安装指南2021.07