当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写了一个简单的客户端,我注意到当我在运行时中断客户端时,它仍然关闭套接字(服务器与客户端断开连接),并且我希望程序中具有相同的行为。
谢谢!