我有两个类,Server和Client,我想在两者之间为游戏交换int数组。我想要做的是从不同的类游戏运行服务器和客户端,我的所有接口/算法都在其中实现。所以我只是不知道如何从我的actionListeners运行Server和Client。
服务器代码:
public class Serveur{
static int [] pos;
public static int[] getData(Socket s){
try{
InputStream is = s.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
pos = (int[])ois.readObject();
} catch(IOException e){
e.printStackTrace();
} catch(ClassNotFoundException e){
System.out.println("No Class");
}
return pos;
}
public static void main(String[] zero){
try{
ServerSocket ss = new ServerSocket(3000);
Socket s = ss.accept();
getData(s);
for(int i=0; i<pos.length; i++)
System.out.println(pos[i]);
} catch(IOException e){
e.printStackTrace();
}
}
}
客户代码:
public class Client {
/**
*Method sending arrays to the Server
*/
public static void sendData(Socket s, int[] pos) throws IOException{
OutputStream os = s.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(pos);
}
public static void main(String[] zero){
Socket socket;
try {
int [] pos = {1,2};
socket = new Socket(InetAddress.getLocalHost(),3000);
sendData(socket, pos);
} catch (IOException e) {
e.printStackTrace();
}
}
}
这只是第一次测试,我对Sockets很新。当我在终端运行时,我去: java Serveur 在另一个: java客户端
然后我的服务器打印1 2.
那么如何从另一个类运行Server和Client?我们的想法是拥有一个用于启动游戏的actionListener,它将启动Server,当其他人尝试连接时,会创建一个将两者连接起来的Client。也许我做错了?
我希望我足够精确。谢谢