gpt4 book ai didi

java - 按 ctrl+C 退出 while 循环时执行代码

转载 作者:行者123 更新时间:2023-11-29 07:55:44 24 4
gpt4 key购买 nike

<分区>

我已经实现了如下所示的服务器。想法是向连接到它的客户端发送“GoodBye”消息。我的问题是我有一个 while 循环。当它退出 while 循环时(当我按 ^C) 时,我希望它关闭套接字。我怎么处理这种情况。最后不做了。

import java.net.*;
import java.io.*;

public class GreetingServer extends Thread
{
private ServerSocket serverSocket;

public GreetingServer() throws IOException
{
serverSocket = new ServerSocket(5063);
serverSocket.setSoTimeout(0);
}

public void run()
{
Socket server = null;
try
{
server = serverSocket.accept();
}
catch(SocketTimeoutException s)
{
System.out.println("Socket timed out!");
}
catch(IOException e)
{
e.printStackTrace();
}

while(true)
{
try
{
System.out.println("Just connected to "
+ server.getRemoteSocketAddress());

DataOutputStream out = new DataOutputStream(server.getOutputStream());

out.writeUTF("\nGoodbye!");
}
catch(SocketTimeoutException s)
{
System.out.println("Socket timed out!");
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
try
{
server.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}

}
public static void main(String [] args)
{
try
{
Thread t = new GreetingServer();
t.start();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com