线程死亡时关闭套接字

时间:2019-04-24 17:17:59

标签: java multithreading sockets

当Java程序终止时(异常或手动),我在关闭套接字时遇到问题。我可以帮忙!

我正在用Java编写一个程序,该程序使用TCP套接字与服务器进行通信。 我有一个套接字,有两个线程使用-一个用于发送数据,另一个用于接收数据。我当前解决该问题的想法是在接收数据线程死亡时关闭套接字(我想听听更多的想法)。当线程(整个程序)终止时,我没有找到关闭套接字的任何方法。线程快死了时,有什么方法可以调用close方法? (正在寻找某种类似于C ++的析构函数) 我尝试使用语句并最终尝试,但没有用。

    public class Receive implements Runnable {
    ....
    ....
        public void run() {
            Socket socket = getSocket() // Gets socket from a singleton class.
            ....
            while (true){
                ....
                readFromSocketFunction();
                ....
            }
            ....
        } // Would like to close the socket when going out from this scope.

    ....
    }

现在,当我终止程序时,套接字保持运行状态。我用Python写了一个简单的客户端,我注意到当我在运行时中断客户端时,它仍然关闭套接字(服务器与客户端断开连接),并且我希望程序中具有相同的行为。

谢谢!

0 个答案:

没有答案