【发布时间】:2016-06-09 16:06:11
【问题描述】:
示例https://github.com/spring-projects/spring-integration-samples/tree/master/basic/tcp-client-server 非常适合构建 TCP 服务器应用程序。它很简单并且在 JVM 上运行。它不需要任何应用服务器。
示例使用命令行输入来运行程序。我希望服务器只接受来自 Socket 端口的数据,而不是通过命令行。如果我删除命令行输入,主线程正在完成并且程序不再接受来自端口的输入。我必须让主线程一直运行。
我在想这样的事情:
boolean isGatewayStopped = false;
while (!isGatewayStopped) {
try {
Thread.sleep(5000);
isGatewayStopped = getGatewayStatus();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
我有两个问题:
有没有让主线程继续运行的干净方法?
如何知道网关已停止?如果用户以“退出”的形式发送 TCP 数据,则可以停止网关。有什么方法可以知道网关停止了吗?
谢谢
【问题讨论】:
标签: java sockets tcp spring-integration