Java实现聊天机器人的代码怎么写
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,本文小编为大家详细介绍"Java实现聊天机器人的代码怎么写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java实现聊天机器人的代码怎么写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2024年11月25日Java实现聊天机器人的代码怎么写
本文小编为大家详细介绍"Java实现聊天机器人的代码怎么写",内容详细,步骤清晰,细节处理妥当,希望这篇"Java实现聊天机器人的代码怎么写"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
服务器的代码:
package Day02;import java.io.*;import java.net.*; public class Socket1 { public static void main(String[] args) throws Exception{ int port=8899; ServerSocket server=null; MChat MC=new MChat(); try { server=new ServerSocket(port); System.out.println("服务器启动..."); while(true) { Socket socket=server.accept();//监听客户端连接,如果客户端连接成功,返回实例化的Socket对象 System.out.println("客户端信息:"+socket); //读取流操作 SocketThd thd=new SocketThd(socket); thd.start(); } } catch (Exception e) { // TODO: handle exception } finally { try { if(server!=null) server.close(); System.out.println("服务器已停止! "); } catch (Exception e2) { // TODO: handle exception } } } static class SocketThd extends Thread{ MChat MC=new MChat(); Socket socket;//和客户端进行通信的对象 BufferedReader br=null; PrintWriter pw=null; public SocketThd(Socket socket) { this.socket=socket; } public void run() { //读入流操作 try { br=new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8")); //写入流操作 pw=new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"))); //接收客户端发送来的信息 String str=""; while((str=br.readLine())!=null) { System.out.println("客户端:"+str); //服务器处理 String rtn=""; //聊天机器人处理程序 rtn=MC.getCharResult(str); //处理结果返回客户端 pw.println(rtn); pw.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { // TODO: handle finally clause try { if(br!=null) br.close(); if(pw!=null) pw.close(); if(socket!=null) socket.close(); } catch (Exception e2) { // TODO: handle exception } } } }}
客户端的代码:
package Day02; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.Socket; public class Client1 { public static void main(String[] args) throws Exception{ String IP="192.168.1.*"; int port=8899; Socket socket=new Socket(IP,port);//建立与服务器连接 //读取流操作 BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); BufferedReader brKey=new BufferedReader(new InputStreamReader(System.in, "UTF-8")); //写入流操作 PrintWriter pw=new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"))); while(true) { String send=brKey.readLine();//等待阻塞命令 if(send.equals("END")) {//键盘输入的借宿条件 break; } //向服务器发送信息 pw.println(send); pw.flush(); //接收服务端回复的消息 String strRtn=br.readLine(); System.out.println("服务端回复信息:"+strRtn); } //关闭连接 br.close(); pw.close(); socket.close(); }}
对话内容引擎:
package Day02; import java.util.Hashtable; public class MChat { private HashtablehtMS=new Hashtable<>(); public String getCharResult(String sKey) { String str=htMS.get(sKey); if(str==null) return ""; else return str; } public MChat() { htMS.put("你好呀","你也好呀,你需啊什么服务吗?"); htMS.put("见到你很高兴","我也很高兴见到你。"); htMS.put("吃了吗","今天吃的好饱呀"); htMS.put("好累呀", "听音乐轻松一下吧"); htMS.put("路上好堵呀","需要哦给你选一条路线吗"); htMS.put("再见", "我先走了,有事你叫我"); }}
实现结果如下:
读到这里,这篇"Java实现聊天机器人的代码怎么写"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
服务
客户
客户端
服务器
代码
UTF-8
机器
机器人
信息
处理
内容
文章
高兴
对象
结果
妥当
成功
命令
好呀
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海量化积分管理软件开发公司
戴尔服务器大小不一样
中专网络技术就业前景
大英软件开发项目管理
福建陆陆陆网络技术
安徽网络安全视频
宁夏旱槐网络技术有限公司
贵州爱采购网络技术有限公司
医院网络安全培训图片大全
网络安全法考试答题
计算机考试数据库双引号
开票管理器应用服务器
期刊论文文献数据库的检索途径
互联网科技公司的未来
杭州知协网络技术有限公司靠谱吗
软件开发与数学建模
杭州游徒网络技术有限公司
戴尔服务器r530
网络安全课程大纲
arma3如何寻找服务器
中税云科网络技术
腐蚀怎么删除历史服务器
推送数据库数据
河北定制网络技术咨询信息推荐
工业操作系统网络安全
数据库批处理举例
服务器管理销售平台
服务器扩展卡什么作用
通过现代通信网络技术发布
查看服务器显卡是否已经插入
- 上一篇
怎么使用Spring Cloud Stream玩转RabbitMQ,RocketMQ和Kafka
这期内容当中小编将会给大家带来有关怎么使用Spring Cloud Stream玩转RabbitMQ,RocketMQ和Kafka,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可
- 下一篇
Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长
这篇文章将为大家详细讲解有关Unity3D中如何通过Animator动画状态机获取任意animation clip的准确播放持续时长,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后