Rumah  >  Artikel  >  Java  >  Bagaimana untuk menulis kod untuk melaksanakan robot sembang di Java

Bagaimana untuk menulis kod untuk melaksanakan robot sembang di Java

WBOY
WBOYke hadapan
2023-05-03 20:34:051184semak imbas

Kod pelayan:

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
      }
    }    
  }
 }
}

Kod pelanggan:

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();
 }
}

Enjin kandungan perbualan:

package Day02;
 
import java.util.Hashtable;
 
public class MChat {
 private Hashtable<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("再见", "我先走了,有事你叫我");
 
 }
}</string>

Mencapai keputusan Seperti berikut :

Bagaimana untuk menulis kod untuk melaksanakan robot sembang di Java

Atas ialah kandungan terperinci Bagaimana untuk menulis kod untuk melaksanakan robot sembang di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam