Java写UDP实现简单的聊天功能

这是用UDP实现简单的聊天功能:
客户端

package 套接字编程.UDP聊天;

import javax.security.sasl.SaslException;
import java.io.IOException;
import java.net.*;
import java.util.Scanner;

/**
 * Create with Darcula IDEA
 * Description:
 * 客户端
 */
public class UdpChatClient {
    public static void main(String[] args) {
        System.out.println("======顾客======");
        try {
            //1.创建数据报套接字
            DatagramSocket socket = new DatagramSocket(8888);
            Scanner scanner = new Scanner(System.in);
            while(true){
                //2.获取用户输入
                String message = scanner.next();
                //将输入封装成数组
                byte[] content = message.getBytes();//得到一个操作系统默认的编码格式的字节数组
                //3.创建数据报包
                DatagramPacket packet = new DatagramPacket(content,content.length,InetAddress.getLocalHost(),9999);
                //4.发送数据
                socket.send(packet);
                //5.接受数据
                byte[] content2 = new byte[1024];
                DatagramPacket packet2 = new DatagramPacket(content2,content2.length);
                socket.receive(packet2);
                //将接收的客服的数据封装成数组
                byte[] serverMessage = packet2.getData();
                //从数组转化为字符串
                String str = new String(serverMessage,0,serverMessage.length);
                System.out.println("客服说:" + str);
                if(message.equals("bye")){
                    break;
                }
            }
            socket.close();
        }catch (SocketException e){
            e.printStackTrace();
        }catch (UnknownHostException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }


    }
}

服务端:

package 套接字编程.UDP聊天;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.rmi.UnexpectedException;
import java.util.Scanner;

/**
 * Create with Darcula IDEA
 * Description:
 * 服务端
 */
public class UdpChatServer  {
    public static void main(String[] args) {
        System.out.println("======客服======");
        try{
            //1.创建数据报套接字
            DatagramSocket socket = new DatagramSocket(9999);
            Scanner scanner = new Scanner(System.in);
            while(true){
                //2.接受数据
                 byte[] content2 = new byte[1024];
                DatagramPacket packet2 = new DatagramPacket(content2,content2.length);
                socket.receive(packet2);
                byte[] clientMessage = packet2.getData();
                String str = new String(clientMessage,0,clientMessage.length);
                System.out.println("顾客说:"+ str);
                //3.获取用户输入
                String message = scanner.next();
                byte[] content = message.getBytes();
                //4.创建数据报包
                DatagramPacket packet = new DatagramPacket(content,content.length,InetAddress.getLocalHost(),8888);
                //5.发送数据
                socket.send(packet);
                if(message.equals("bye")){
                    break;
                }
            }
            //6.释放资源
            socket.close();
        }catch (SocketException e){
            e.printStackTrace();
        }catch (UnexpectedException e){
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值