【发布时间】:2017-12-07 12:26:51
【问题描述】:
我在尝试在服务器和客户端类之间进行通信时遇到问题。 这是我非常简单的 Server.java:
public class Server {
public static int position = 1;
public int getPosition() {
return position;
}
public static void main(String args[]) throws IOException {
position++;
ServerSocket server = new ServerSocket(8080);
Socket s = server.accept();
System.out.println(position);
}
}
这是我的客户:
public class Client {
public static void main(String args[]) throws UnknownHostException, IOException {
Server serv = new Server();
Socket s = new Socket("127.0.0.1", 8080);
System.out.println("Connected!!");
int a = ser.getPosition();
System.out.println(a);
}
}
因此,当我在服务器上打印位置时,我得到 2,当它在客户端中打印时,即使在服务器上更改了静态值,它仍保持为 1。
请帮我解决这个问题。任何形式的帮助将不胜感激!
谢谢!
【问题讨论】:
-
您的期望是什么?
-
这根本不是它的工作原理。我建议查找客户端服务器教程。更何况上面的代码连编译都不会。
-
对不起.. 我刚刚重新编辑了它,它现在应该可以编译和工作了
-
@VPK 我的期望是,当我在客户端打印 a 时,我应该得到 2,因为在服务器中我将值增加到 2。
-
基于两个 main() 方法,您可能有两个不同的程序正在运行,它们不共享同一个服务器类。与其共享一个类,不如考虑为跨套接字的通信定义一个接口。有很多例子 - javaworld.com/article/2077322/core-java/….