【问题标题】:Java accessing a value in the clientJava 访问客户端中的值
【发布时间】: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/….

标签: java server client


【解决方案1】:

好吧,服务器和客户端之间不进行通信,只需调用服务器类中的 getPosition() 方法,而不是通过套接字。 这是tutorialsguide

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2018-02-23
    相关资源
    最近更新 更多