基于UDP协议实现的‘智能’问答机器人

Posted 保护眼睛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于UDP协议实现的‘智能’问答机器人相关的知识,希望对你有一定的参考价值。

‘智能’问答机器人

效果

客户端输入消息后:

服务端就会自动应答:

👇

客户端代码

/**
 * user:ypc;
 * date:2021-06-29;
 * time: 21:03;
 * 使用UDP创建一个客户端
 */
public class UDPDemo1 {
    //创建服务端的ip地址
    private static final String ip = "127.0.0.1";
    //创建服务器端的端口号
    private static final int port = 65535;
    //数据包的大小
    private static final int len = 1024;

    public static void main(String[] args) throws IOException {
        //创建客户端
        DatagramSocket datagramSocket = new DatagramSocket();

        //让用户来输入要发送的信息
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.print("请客户端输入你要发送的信息--->");
            //接收到用户输入的信息
            String message = scanner.nextLine();
            //构建发送的数据包
            DatagramPacket packet = new DatagramPacket(
                    message.getBytes(),
                    message.getBytes().length,
                    InetAddress.getByName(ip),
                    port
            );
            //发送消息
            datagramSocket.send(packet);
            //接受服务器的消息
            DatagramPacket serPacket = new DatagramPacket(new byte[len], len);
            datagramSocket.receive(serPacket);
            System.out.println("机器人:" + new String(serPacket.getData()));
        }
    }

}

服务端代码

public class UDPServer {
    private static final int port = 65535;
    private static final int len = 1024;

    public static void main(String[] args) throws IOException {
        //创建一个UDP服务器
        DatagramSocket socket = new DatagramSocket(port);

        while (true) {
            DatagramPacket clientPacket = new DatagramPacket(new byte[len], len);
            //等待客户端连接
            socket.receive(clientPacket);
            //表示客户端已经连接了
            String message = new String(clientPacket.getData());
            String mes = message.replace("你", "我").replace("吗?", "。");
            //构建客户端发送的数据包
            DatagramPacket datagramPacket = new DatagramPacket(
                    mes.getBytes(),
                    mes.getBytes().length,
                    clientPacket.getAddress(),
                    clientPacket.getPort()
            );

            socket.send(datagramPacket);
        }

    }
}

思想

看服务端的代码😀

以上是关于基于UDP协议实现的‘智能’问答机器人的主要内容,如果未能解决你的问题,请参考以下文章

基于myRIO-UDP协议的智能小车实现范例

Android 智能问答机器人的实现

论文笔记基于知识图谱的智能问答系统研究与设计

基于ChatGPT的API实现一个响应速度比官方更快的在线问答网站并通过宝塔上线全网可访问

基于ChatGPT的API实现一个响应速度比官方更快的在线问答网站并通过宝塔上线全网可访问

Arduino基于UDP协议的远程通信