本文小編為大家詳細(xì)介紹“Java實(shí)現(xiàn)聊天機(jī)器人的代碼怎么寫”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Java實(shí)現(xiàn)聊天機(jī)器人的代碼怎么寫”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的洛龍網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
服務(wù)器的代碼:
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("服務(wù)器啟動(dòng)..."); while(true) { Socket socket=server.accept();//監(jiān)聽客戶端連接,如果客戶端連接成功,返回實(shí)例化的Socket對(duì)象 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("服務(wù)器已停止! "); } catch (Exception e2) { // TODO: handle exception } } } static class SocketThd extends Thread{ MChat MC=new MChat(); Socket socket;//和客戶端進(jìn)行通信的對(duì)象 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"))); //接收客戶端發(fā)送來的信息 String str=""; while((str=br.readLine())!=null) { System.out.println("客戶端:"+str); //服務(wù)器處理 String rtn=""; //聊天機(jī)器人處理程序 rtn=MC.getCharResult(str); //處理結(jié)果返回客戶端 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);//建立與服務(wù)器連接 //讀取流操作 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; } //向服務(wù)器發(fā)送信息 pw.println(send); pw.flush(); //接收服務(wù)端回復(fù)的消息 String strRtn=br.readLine(); System.out.println("服務(wù)端回復(fù)信息:"+strRtn); } //關(guān)閉連接 br.close(); pw.close(); socket.close(); } }
對(duì)話內(nèi)容引擎:
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("你好呀","你也好呀,你需啊什么服務(wù)嗎?"); htMS.put("見到你很高興","我也很高興見到你。"); htMS.put("吃了嗎","今天吃的好飽呀"); htMS.put("好累呀", "聽音樂輕松一下吧"); htMS.put("路上好堵呀","需要哦給你選一條路線嗎"); htMS.put("再見", "我先走了,有事你叫我"); } }
實(shí)現(xiàn)結(jié)果如下:
讀到這里,這篇“Java實(shí)現(xiàn)聊天機(jī)器人的代碼怎么寫”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:Java實(shí)現(xiàn)聊天機(jī)器人的代碼怎么寫
標(biāo)題來源:http://chinadenli.net/article36/podcsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、自適應(yīng)網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站導(dǎo)航、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)