课堂练习的小程序之人机对话,保存在此~~~
服务器:
package jiqiren;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
public class Server {
public static void main(String args[]) {
Map userMap = new HashMap();
userMap.put("你好", "你也好");
userMap.put("你吃早饭了吗?", "我吃过了,你呢?");
userMap.put("我没有吃呢", "那我请你吃吧");
userMap.put("好啊", "你吃什么呢?");
userMap.put("我吃鸡蛋", "就吃这么点啊");
userMap.put("我减肥呢", "哈哈");
boolean f = false;
InputStream is = null; OutputStream os = null;
try {
ServerSocket s = new ServerSocket(8888);
System.out.println("服务器开始运行!!!");
while (true) {
Socket s1 = s.accept();
is = s1.getInputStream();
os = s1.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
//自定义代码
do{
String talk = dis.readUTF();
dos.writeUTF("机器人说:" + userMap.get(talk) );
}while(!f);
//****
dos.close();
s1.close();
}
}catch (IOException e) {
e.printStackTrace();
System.out.println("程序运行出错:" + e);
}
}
}
客户
package jiqiren;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ConnectException;
import java.net.Socket;
import java.util.Scanner;
public class Client {
public static void main(String args[]) {
String f = "y";
String re;
InputStream is = null;
OutputStream os = null;
Scanner sc = new Scanner(System.in);
try {
Socket socket = new Socket("127.0.0.1", 8888);//开启
is = socket.getInputStream();
os = socket.getOutputStream();
DataInputStream dis = new DataInputStream(is);
DataOutputStream dos = new DataOutputStream(os);
//自定义代码
do{
System.out.print("我说:");
String ss = sc.next();
dos.writeUTF(ss);
String s = dis.readUTF();
if(s!=null);
{
System.out.println(s);
System.out.println("还要继续交谈吗?(y/n)");
re = sc.next();
}
}while(f.equals(re));
//*******
dos.close();
dis.close();
socket.close();
} catch (ConnectException connExc) {
connExc.printStackTrace();
System.err.println("服务器连接失败!");
} catch (IOException e) {
e.printStackTrace();
}
}
}