java - 服务器处于无限循环时更新文本字段时出错
问题描述
我有一个 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 更改。
解决方案
推荐阅读
- asp.net-mvc - 如何在没有列的情况下在模型中设置默认值?
- c# - Math.Log(125,5) 在 C# 中不返回 3
- javascript - 如何使用 JavaScript 函数根据单选按钮选择使我的表单提交按钮打开不同的 URL?
- delphi - 在运行时设置 Firedac fdquery 和 fdconnection
- java - 高效生成三元组组合
- firebase - Flutter Firebase 从所有父文档中获取多个集合
- autohotkey - 在 AHK 循环文件和文件夹中使用通配符
- node.js - CommonJS 与 JSON?
- python - 如何使用来自第二个数据帧的值填充新列,但依赖于当前数据帧中不同的现有列使用 Pandas
- ruby-on-rails - 在 Rails 项目中找不到源对象