关于两个客户端的Java Socket游戏

时间:2018-03-26 10:21:24

标签: java sockets client

我尝试一台服务器,两台客户端制作Rock Paper Scissors 但我有一个客户无法接受服务器按摩

package exam;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;

public class Server_Game {

    public static void main(String[] args) throws Exception {

        ServerSocket server = new ServerSocket(8080); 
        System.out.println("Active Server");
        HashMap<Integer,String> gababo = new HashMap<>();
        List<Socket> player = new ArrayList();
        int count =0;
        while(true){
            Socket socket =server.accept(); 
            OutputStream out = socket.getOutputStream();
            DataOutputStream  dos = new DataOutputStream(out);
            player.add(socket);

            String players = player.get(count).toString();
            gababo.put(count, players);
            count++;
            System.out.println(count + "th player connet ");
            dos.writeUTF(count + "th player connet");
            dos.flush();

在听到

中尝试两个客户端连接成功
            if(gababo.size() >=2) {

                Scanner sc = new Scanner(System.in);
                System.out.println("2player Come");

                dos.writeUTF("Start");
                dos.writeUTF("1.scis 2.Rock 3.Paper ");
                dos.writeUTF(">>>>>");
                dos.flush();

听到它没有激活一个客户端显示文本 只有一个文本显示

                InputStream in = player.get(0).getInputStream();
                DataInputStream dis = new DataInputStream(in);
                int choice = dis.readInt();

                InputStream in2 = player.get(1).getInputStream();
                DataInputStream dis2 = new DataInputStream(in2);
                int choice2 = dis2.readInt() ;

                if(choice ==1) {

                    if(choice2 == 1) {
                        dos.writeUTF("draw.");
                        dos.flush();
                    }else if(choice2 == 2) {
                        dos.writeUTF("2play win.");
                        dos.flush();
                    }else if(choice2 == 3) {
                        dos.writeUTF("1play win.");
                        dos.flush();
                    }else {
                        dos.writeUTF("strenge number.");
                        dos.flush();
                    }

                }else if(choice ==2) {

                    if(choice2 == 1) {
                        dos.writeUTF("1play win");
                        dos.flush();
                    }else if(choice2 == 2) {
                        dos.writeUTF("draw.");
                        dos.flush();
                    }else if(choice2 == 3) {
                        dos.writeUTF("2play win.");
                        dos.flush();
                    }else {
                        dos.writeUTF("strenge number");
                        dos.flush();
                    }

                }else if(choice ==3){

                    if(choice2 == 1) {
                        dos.writeUTF("2player win.");
                        dos.flush();
                    }else if(choice2 == 2) {
                        dos.writeUTF("1player win.");
                        dos.flush();
                    }else if(choice2 == 3) {
                        dos.writeUTF("draw");
                        dos.flush();
                    }else {
                        dos.writeUTF("Strenge number");
                        dos.flush();
                    }                                   
                }
            }
        }
    }
}

我正在寻找其他网站,但我无法找到解决方案 否则问题未使用列表

0 个答案:

没有答案