后台Javafx中的TCP / IP连接

时间:2016-12-07 07:19:48

标签: multithreading javafx tcp-ip

我正在尝试使用TCP / IP连接在javafx中使用多人游戏选项制作游戏。我创建了一个处理后台连接的线程,以便在用户离线时监听连接。如果有人试图连接我希望线程在主javafx应用程序上触发一个按钮。问题是我无法在另一个线程上修改UI。我尝试使用Task<>platform.runlaterTimeline无效。

  Thread thread = new Thread(){
       public void run(){

            try {

                int ServerPort=6779;

                ServerSocket serverSocket = new ServerSocket(ServerPort);
                System.out.println("waiting for player to join");
                Socket connectionSocket = serverSocket.accept();
                ObjectOutputStream outToServer1 = new ObjectOutputStream(connectionSocket.getOutputStream());
                System.out.println("connected");
                Board boardJ = new BoardM();
                outToServer1.writeObject(boardJ);

                boardS=boardJ;
                ServerBoard.fire();



             } catch (IOException ex) {
                    Logger.getLogger(JavaFXApplication1.class.getName()).log(Level.SEVERE, null, ex);
             }

       }
   };
  thread.start();

1 个答案:

答案 0 :(得分:1)

线程在这里没问题。您需要做的是在Platform.runLater调用中包含按钮的触发。