大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文小编为大家详细介绍“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实现聊天机器人的代码怎么写”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。