Я создаю игру главных козырей, и в ней я создаю сервер и двух клиентов. У меня есть класс контроллера, который я хочу использовать для управления игрой. Когда я запускаю контроллер, он создает мой Сервер, но мне приходится запускать клиентов отдельно для их создания.
Есть ли способ, когда при запуске контроллера он запускает как моих клиентов, так и мои серверы? Я начинающий, когда дело доходит до клиента / сервера в Java, поэтому любая помощь будет отличной.
public static void main(String[] args) throws ClassNotFoundException, IOException {
//Empty card arrays for now while testing
Cards[] Player1 = new Cards[2];
Cards[] Player2 = new Cards[2];
Server server = new Server();
Client client = new Client(Player1, "Gary");
Client client2 = new Client(Player2, "Jack");
}
}
public class Server {
public Server() throws IOException, ClassNotFoundException{
@SuppressWarnings("resource")
ServerSocket serverSocket = new ServerSocket(3000);
System.out.println("Connecting....");
while(!serverSocket.isClosed()) {
Socket socket = serverSocket.accept();
System.out.println("Connected");
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
//Reads my card object
Cards card = (Cards)ois.readObject();
JFrame frame = new JFrame();
frame.setSize(600, 600);
//Test
JLabel imageLabel = new JLabel(card.image);
frame.add(imageLabel);
frame.setVisible(true);
System.out.println(card.name);
ois.close();
socket.close();
}
}
}
public class Client implements Serializable{
public Client(Cards[] hand, String string) throws IOException, ClassNotFoundException {
Socket socket = new Socket("localhost", 3000);
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
//This is a test to show my card object can be passed over the stream
Cards card = new Cards(string, 9, 5, 3, 5,new ImageIcon("C:\\Users\\gary.kelly\\Pictures\\Cards\\John Snow.jpg"));
oos.writeObject(card);
oos.close();
socket.close();
}
}