Связь между TCP и UI Thread Java - PullRequest
0 голосов
/ 07 июня 2018

Пользовательский интерфейс моего приложения выполняется в основном потоке. Он создает поток прослушивателя TCP, который ожидает подключения, а затем создает другой поток, который будет обрабатывать подключение.Есть ли способ, чтобы поток обработки TCP мог взаимодействовать с моим основным потоком, устанавливать элементы пользовательского интерфейса или вызывать какие-либо функции, которые выполняются одновременно?

Это сетевой контроллер в моем главном потоке, создающий новый прослушиватель TCP

public void serverStart() throws IOException {
     Thread t = new Thread(new TCPEchoServer(this.getApp()));
     t.start();

Я попытался передать ему экземплярный контроллер приложений, надеясь, что он может взаимодействовать с основным потоком, но я получил Java.lang.reflect.InvocationTargetException

Это прослушиватель TCP, создающий ClientThread, который будет обрабатывать информацию, поступающую и откуда я хочу связаться с основным потоком

while (true) {
        /*server will accept a connection and start a new "ClientThread" for that connection */
        try {
            Socket socket = serverSocket.accept();
            ClientThread clientThread = new ClientThread(socket, ++clientId,app);
            clientThread.start(); 
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
    }
...