停止java服务器_Java停止服务器线程

这篇博客探讨了如何在Java应用程序中停止服务器线程。当前的实现创建了一个ServerRunnable类来监听特定端口的连接。当尝试停止监听时,由于不能直接使用Thread.stop()方法,博主寻求一个安全的方法来关闭服务器线程,以避免引发问题。
摘要由CSDN通过智能技术生成

以下代码是我的应用程序中的服务器代码:

private int serverPort;

private Thread serverThread = null;

public void networkListen(int port){

serverPort = port;

if (serverThread == null){

Runnable serverRunnable = new ServerRunnable();

serverThread = new Thread(serverRunnable);

serverThread.start();

} else {

}

}

public class ServerRunnable implements Runnable {

public void run(){

try {

//networkConnected = false;

//netMessage = "Listening for Connection";

//networkMessage = new NetworkMessage(networkConnected, netMessage);

//setChanged();

//notifyObservers(networkMessage);

ServerSocket serverSocket = new ServerSocket(serverPort, backlog);

commSocket = serverSocket.accept();

serverSocket.close();

serverSocket = null;

//networkConnected = true;

//netMessage = "Connected: " + commSocket.getInetAddress().getHostAddress() + ":" +

//commSocket.getPort();

//networkMessage = new NetworkMessage(networkConnected, netMessage);

//setChanged();

//notifyObservers(networkMessage);

} catch (IOException e){

//networkConnected = false;

//netMessage = "ServerRunnable Network Unavailable";

//System.out.println(e.getMessage());

//networkMessage = new NetworkMessage(networkConnected, netMessage);

//setChanged();

//notifyObservers(networkMessage);

}

}

}

代码类型的工作,即如果我尝试一个直接连接,两端通信和更新。

问题是,当我在监听连接时,如果我想退出监听,那么服务器线程将继续运行并导致问题。

我知道不应该在线程上使用.stop(),所以我想知道考虑到这个问题,解决方案会是什么样子?

编辑:注释掉了不需要的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值