Ошибка обновления текстового поля, когда сервер находится в бесконечном цикле - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть TCP-клиент, который отправляет данные на мой TCP-сервер.ServerSocket в TCP-сервере всегда ожидает входящий запрос от клиента в бесконечном цикле while (true).Я хочу всегда обновлять свое текстовое поле на основе запроса от клиента, мой серверный сокет находится в то время как (true), где находятся данные от клиента.Как этого добиться?

// сводка моего текущего кода

Text txtOne;

public static void main(String[] args) 
{
  window.open();
}

void open()
{
  createContents();
}

createcontents()
{
  txtOne = new Text(shell, SWT.BORDER);

Button btnStartServer = new Button(shell, SWT.NONE);
    btnStartServer.addSelectionListener(new SelectionAdapter() {
    @Override
    public void widgetSelected(SelectionEvent e) {
    toServerController();
    }
  });
}

void toServerCOntroller()
{
  try
   {
     ServerSocket server = new ServerSocket(60000);
     while (true)
    {
      Socket sclient = server.accept();
      DataInputStream dataIn = new DataInputStream(sclient.getInputStream());
    DataOutputStream dataOut = new DataOutputStream(sclient.getOutputStream());

     String name = dataIn.readUTF();
     txtOne.setText(name); //<----- this is where the error happen
   }
}

Я ожидаю, что txtOne всегда будет меняться в зависимости от dataIn.

...