使用UDP实现简单多人聊天功能

来源:互联网 发布:数据库使用培训 编辑:程序博客网 时间:2024/06/05 17:13

使用UDP实现简单聊天功能


使用UDP实现一个简单的多人聊天功能。该程序使用了多线程,实现了聊天功能。

package 课后作业.E103_10_聊天;import java.io.IOException;import java.net.*;import java.util.Scanner;//接收class Receive implements Runnable{    @Override    public void run() {        DatagramSocket receiveSocket = null;        try {            receiveSocket = new DatagramSocket(5200);        } catch (SocketException e) {            e.printStackTrace();        }        while (true) {            byte[] bytes = new byte[1024];            //创建一个报文,于与接收            DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);            //接收            try {                receiveSocket.receive(datagramPacket);            } catch (IOException e) {                e.printStackTrace();            }            InetAddress ip = datagramPacket.getAddress();            System.out.println(ip.getHostName()+ new String(datagramPacket.getData()));        }    }}//发送class Send implements Runnable{    @Override    public void run() {        DatagramSocket sendSocket = null;        try {            sendSocket = new DatagramSocket();        } catch (SocketException e) {            e.printStackTrace();        }        Scanner scan = new Scanner(System.in);        while (true) {            String str = scan.next();            //要发送的信息            byte[] bytes = str.getBytes();            //发送的目标地址            InetAddress inetAddress = null;            try {                inetAddress = InetAddress.getByName("192.168.108.32");            } catch (UnknownHostException e) {                e.printStackTrace();            }            //数据报文            DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, inetAddress, 5200);            //发送            try {                sendSocket.send(datagramPacket);            } catch (IOException e) {                e.printStackTrace();            }        }    }}public class Test {    public static void main(String[] args) {        Receive receive = new Receive();        Thread thread = new Thread(receive);        thread.start();        Send send = new Send();        Thread thread1 = new Thread(send);        thread1.start();    }}

运行结果:
这里写图片描述

这里实现的是两人聊天,想要实现多人聊天只需要将接受地址改成广播地址即可。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 汉家江湖恒山 汉家江湖五道口 汉家江湖破解版无需联网 汉家江湖下载 汉家江湖门派贡献 白云深处有为家初吻江湖 江湖情1完整国语 江湖情国语 江湖情之英雄好汉 江湖风雨情 江湖情英雄好汉粤语 江湖情介绍 江湖情下载 江湖情之 艳侠江湖情在线阅读 江湖情完整 新江湖情 江湖情2之英雄好汉 江湖情的续集 江湖忘年情 江湖情粤语高清 江湖情2英雄好汉国语 剑出江湖情 武意江湖 武意江湖 出墙的红杏 江湖意 烟雨江湖文皇 50条不成文的江湖规矩 好看的江湖言情文 江湖文 好看的江湖文 热血江湖手游攻略 携美游江湖 热血江湖手游职业 手游热血江湖 游钓江湖 江湖求生手游 热血江湖手游邪医 热血江湖手游职业攻略 热血江湖手游升级攻略 画江湖系列