我试图制作战争游戏,在局域网上作为家庭作业。问题是我需要自己学习java中的套接字是如何工作的。我需要的只是发送整数并使用它们,然后返回一些值,通知其他玩家他的得分。
客户(播放器1):
public static void main(String[] args) throws IOException {
int number, temp;
Scanner sc = new Scanner(System.in);
Socket s = new Socket("localhost", 1342);
Scanner sc1 = new Scanner(s.getInputStream());
System.out.println("Number: ");
PrintStream p = new PrintStream(s.getOutputStream());
for (int i = 0; i < 10; i++) {
number = sc.nextInt();
p.println(number);
temp = sc1.nextInt();
System.out.println(temp);
}
}
服务器(播放器2):
public static void main(String args[]) throws IOException {
int number = 0, temp;
ServerSocket s1 = new ServerSocket(1342);
Socket ss = s1.accept();
Scanner sc = new Scanner(ss.getInputStream());
PrintStream p = new PrintStream(ss.getOutputStream());
for (int i = 0; i < 10; i++) {
number = sc.nextInt();
temp = number * 2;
p.print(temp);
System.out.println(""+temp);
}
}
我想发送10个号码并将它们接收回来乘以2.我可以轻松地将其更改为对游戏进行实际计算,但我需要了解套接字是如何工作的。
我没有for循环工作但现在的问题是,即使服务器发送它,我也不会返回任何数字。客户端在取消服务器应用程序后收到它。