首页 > 解决方案 > 服务器处于无限循环时更新文本字段时出错

问题描述

我有一个 TCP 客户端,它将数据发送到我的 TCP 服务器。TCP服务器中的ServerSocket总是在while(true)的无限循环中等待来自客户端的请求。我想始终根据来自客户端的请求更新我的文本字段,我的 serversocket 位于来自客户端的数据所在的 while(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 更改。

标签: javaserversocket

解决方案


推荐阅读