⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msession.java

📁 httptunnel.jar httptunnel java 源码
💻 JAVA
字号:
package net.jumperz.app.httptunnel;

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

public final class MSession
{
private Socket socket;
private int recvSequence;
private int sendSequence;
private HashMap dataMap;
private String sessionName;
private boolean busy;
private boolean closed;
//-----------------------------------------------------------------------------------------
/**
 * Constructor called by REYE 
 */
public MSession( String in_sessionName )
{
sessionName	= in_sessionName;
recvSequence	= 0;
sendSequence	= 0;
dataMap		= new HashMap();
busy		= true;
closed		= false;
}
//-----------------------------------------------------------------------------------------
/**
 * Constructor called by LEYE
 */
public MSession( Socket in_socket )
{
socket		= in_socket;
recvSequence	= 0;
sendSequence	= 0;
dataMap		= new HashMap();
busy		= false;
closed		= false;

InetAddress inetAddr = socket.getInetAddress();
Date date = new Date();
long time = date.getTime();

sessionName = inetAddr.getHostAddress() + ":" + Integer.toString( socket.getPort() ) + "@" + Long.toString( time );
}
//-----------------------------------------------------------------------------------------
public final int getSequence()
{
recvSequence++;
return recvSequence - 1;
}
//-----------------------------------------------------------------------------------------
public final String getSessionName()
{
return sessionName;
}
//-----------------------------------------------------------------------------------------
public final synchronized void putData( MTunnelData tunnelData )
{
dataMap.put( Integer.toString( tunnelData.getSequence() ), tunnelData );
}
//-----------------------------------------------------------------------------------------
public final boolean isBusy()
{
return busy;
}
//-----------------------------------------------------------------------------------------
public final boolean hasNextTunnelData()
{
String key = Integer.toString( sendSequence );
if( dataMap.containsKey( key ) )
	{
	return true;
	}
else
	{
	return false;
	}
}
//-----------------------------------------------------------------------------------------
public final synchronized MTunnelData getNextTunnelData()
throws IOException
{
String key = Integer.toString( sendSequence );
MTunnelData tunnelData = ( MTunnelData )dataMap.get( key );

busy = true;
dataMap.remove( key );
sendSequence++;

return tunnelData;
}
//-----------------------------------------------------------------------------------------
public final synchronized void clearBusy()
{
busy = false;
}
//-----------------------------------------------------------------------------------------
public final Socket getSocket()
{
return socket;
}
//-----------------------------------------------------------------------------------------
public final void setSocket( Socket IN_socket )
{
socket = IN_socket;
busy = false;
}
//-----------------------------------------------------------------------------------------
public final synchronized void close()
{
closed = true;
}
//-----------------------------------------------------------------------------------------
public final synchronized boolean isClosed()
{
return closed;
}
//-----------------------------------------------------------------------------------------
}

⌨️ 快捷键说明

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