其实我不知道TIME_WAIT状态是什么 只是我百度shutdownOutput这个方法的时候 看到有个帖子说
可以通过这个方法实现 这种状态。但是不懂什么意思。代码如下:
以下是试验代码:
- //服务端:
- public static void main(String[] args) throws IOException {
- ServerSocket server = new ServerSocket(8989);
- while(true){
- Socket s = server.accept();
- try{
- Thread.sleep(3000);
- }catch(Exception e){
- e.printStackTrace();
- }
- s.shutdownOutput();//这句话执行了,服务端进入CLOSED状态,客户端进行TIME_WAIT状态
- }
- }
- //客户端:
- public static void main(String[] args) throws IOException {
- InetAddress ad = InetAddress.getByName("localhost");
- Socket socket = new Socket(ad,8989,ad,20001);
- socket.shutdownOutput();//主动关闭
- try{
- Thread.sleep(2000);
- }catch(Exception e){
- e.printStackTrace();
- }
- }
复制代码 |