msocketcloser.java

来自「httptunnel.jar httptunnel java 源码」· Java 代码 · 共 72 行

JAVA
72
字号
package net.jumperz.net;

import java.io.*;
import net.jumperz.util.*;
import java.util.*;
import java.net.*;

public final class MSocketCloser
extends MSingleThreadCommand
{
private LinkedList socketQueue = new LinkedList();

private static final MSocketCloser instance = new MSocketCloser();
//--------------------------------------------------------------------------------
public static MSocketCloser getInstance()
{
return instance;
}
//--------------------------------------------------------------------------------
public void addSocket( Socket socket )
{
synchronized( socketQueue )
	{
	socketQueue.addLast( socket );
	}

synchronized( mutex )
	{
	mutex.notify();
	}
}
//--------------------------------------------------------------------------------
protected void execute2()
{
while( !socketQueue.isEmpty() )
	{
	Socket socket = null;
	synchronized( socketQueue )
		{
		socket = ( Socket )socketQueue.getFirst();
		socketQueue.removeFirst();
		}
	try
		{
		if( !socket.isClosed() )
			{
			socket.close();
			}
		}
	catch( IOException e )
		{
		e.printStackTrace();
		}
	}
}
//--------------------------------------------------------------------------------
private MSocketCloser()
{
mutex = this;
}
//--------------------------------------------------------------------------------
public void breakCommand()
{
terminated = true;

synchronized( this )
	{
	notify();
	}
}
//--------------------------------------------------------------------------------
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?