定义服务器端
package com.briup.day25.home;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashMap;
import java.util.Map;
public class Home6_CardServer {
public static void main(String[] args) throws Exception{
//实例化套接字对象 绑定端口号
ServerSocket server = new ServerSocket(8080);
System.out.println("服务器8080即将启动");
//接收客户端的连接
Socket socket = server.accept();
System.out.println("客户端连接成功");
//从套接字中获取
InputStream is =socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
OutputStream os =socket.getOutputStream();
PrintStream ps = new PrintStream(os);
//业务实现
Map<Integer,String> map = new HashMap<>();
map.put(3,"国王");
map.put(2,"平民");
map.put(1,"奴隶");
//System.out.println(line);
while (true) {
String line = br.readLine();
if ("quit".equals(line))
break;
int m = Integer.parseInt(line);
int n = (int) (Math.random() * 3 + 1);
//我输入了平民系统输出了平民你赢了
//请输入您的卡牌
//我输入了平民系统输出了平民你赢了
if ((m == 3 && n != 1) || (m == 2 && n != 3) || (m == 1 && n == 3))
ps.println("我输入了" + map.get(m) + "系统输出了" + map.get(n) + "你赢了");
if ((m == 3 && n == 1) || (m == 2 && n == 1) || (m == 1 && n != 3))
ps.println("我出了" + map.get(m) + "系统输出了" + map.get(n) + "你输了");
if ((m == 3 && n==3) || (m==2 && n==2) || (m==1 && n==1))
ps.println("我出" + map.get(m) + "系统输出了" + map.get(n) + "平局");
// String line = null;
// while ((line = br.readLine())!=null){
//
// }
}
//关闭流
server.close();
}
}
定义客户端
package com.briup.day25.home;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class Home7_CardCilent {
public static void main(String[] args) throws IOException {
Socket cilent =new Socket("127.0.0.1",8080);
InputStream is = cilent.getInputStream();
BufferedReader bs = new BufferedReader(new InputStreamReader(is));
OutputStream os = cilent.getOutputStream();
PrintStream ps = new PrintStream(os);
Scanner sc = new Scanner(System.in);
String line;
int count =0;
while (true){
System.out.println( "请输入您的卡牌");
line = sc.nextLine();
if (!("1".equals(line)||("2".equals(line)||("3".equals(line))))){
System.out.println("error");
continue;
}
ps.println(line);
line = bs.readLine();
System.out.println(line);
if (line.contains("赢"))
count++;
if (count == 3){
System.out.println("你已经推平对方水晶,victory");
break;
}
}
cilent.close();
}
}