/* * Created on Dec 31, 2004 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package cc.glsn; import java.net.Socket; import java.net.ServerSocket; import java.io.IOException; /** * @author fireduck * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */ public class TCPWatch { SyncCounter DoneCnt; PCMonitor LogQ; public static void main(String[] args) throws IOException { int AnswerPort=new Integer(args[0]).intValue(); String TargetHost=args[1]; int TargetPort=new Integer(args[2]).intValue(); new TCPWatch(AnswerPort,TargetHost,TargetPort); } public TCPWatch(int AnswerPort, String TargetHost, int TargetPort) throws IOException { LogQ=new PCMonitor(); ServerSocket SS=new ServerSocket(AnswerPort); Socket SockClient=SS.accept(); Socket SockServer=new Socket(TargetHost,TargetPort); new Loggo().start(); new Reado("client",SockClient,SockServer).start(); new Reado("server",SockServer,SockClient).start(); } private class Reado extends Thread { String Label; Socket InputSock; Socket OutputSock; /** * @param label * @param inputSock * @param outputSock */ public Reado(String label, Socket inputSock, Socket outputSock) { super(); this.setDaemon(false); Label = label; InputSock = inputSock; OutputSock = outputSock; } public void run() { try { byte Buff[]=new byte[4096]; while((!InputSock.isInputShutdown()) && (!OutputSock.isOutputShutdown())) { int len=InputSock.getInputStream().read(Buff,0,4096); if (len>0) { byte Buff2[]=new byte[len]; for(int i=0; i