您的位置:首页技术文章
文章详情页

Java实现聊天机器人

【字号: 日期:2022-08-09 13:03:25浏览:41作者:猪猪

本文实例为大家分享了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 Hashtable<String, String> htMS=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实现聊天机器人

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。

标签: Java
相关文章: