www.pudn.com > XYNetSocket.zip > Test.cs


using System; 
using System.Net.Sockets; 
using System.Threading; 
using XYNetSocketLib; 
 
namespace XYNetSocketTest 
{ 
	class Test 
	{	 
		private static XYNetServer myServer = null; 
 
		private static void ExceptionHandler(Exception oBug) 
		{ 
			System.Console.Out.WriteLine("Error: " + oBug.Message); 
			Exception oEx = myServer.GetLastException(); 
			if(oEx!=null) System.Console.Out.WriteLine("Error: " + oEx.Message); 
		} 
 
		private static void ConnectionFilter(String sRemoteAddress, int nRemotePort, Socket sock) 
		{ 
			System.Console.Out.WriteLine("Connection request from " + sRemoteAddress + ":" + nRemotePort.ToString()); 
		} 
	 
		private static void BinaryInputHandler(String sRemoteAddress, int nRemotePort, Byte[] pData) 
		{ 
			System.Console.Out.WriteLine("Thread count = " + myServer.GetThreadCount().ToString()); 
			System.Console.Out.WriteLine("Client count = " + myServer.GetClientCount().ToString()); 
			System.Console.Out.WriteLine("Server received binary data from " + sRemoteAddress + ":" + nRemotePort.ToString()); 
			// System.Console.Out.WriteLine(XYNetCommon.BinaryToString(pData)); 
			if(myServer.SendBinaryData(sRemoteAddress, nRemotePort, pData)) 
				System.Console.Out.WriteLine("Binary reply sent"); 
		} 
 
		private static void StringInputHandler(String sRemoteAddress, int nRemotePort, String sData) 
		{ 
			System.Console.Out.WriteLine("Thread count = " + myServer.GetThreadCount().ToString()); 
			System.Console.Out.WriteLine("Client count = " + myServer.GetClientCount().ToString()); 
			System.Console.Out.WriteLine("Server received string data from " + sRemoteAddress + ":" + nRemotePort.ToString()); 
			System.Console.Out.WriteLine(sData); 
			if(myServer.SendStringData(sRemoteAddress, nRemotePort, sData)) 
				System.Console.Out.WriteLine("String reply sent"); 
		} 
 
		[STAThread] 
		static void Main(string[] args) 
		{ 
			try 
			{ 
				if(args.Length==1) 
				{ 
					myServer = new XYNetServer("", Convert.ToInt32(args[0]), 5, 10); 
					myServer.SetConnectionFilter(new ConnectionFilterDelegate(Test.ConnectionFilter)); 
					myServer.SetExceptionHandler(new ExceptionHandlerDelegate(Test.ExceptionHandler)); 
					myServer.SetBinaryInputHandler(new BinaryInputHandlerDelegate(Test.BinaryInputHandler)); 
					myServer.SetStringInputHandler(new StringInputHandlerDelegate(Test.StringInputHandler)); 
					if(myServer.StartServer()==false) throw myServer.GetLastException(); 
					Thread.Sleep(60000); 
					System.Console.Out.WriteLine("Thread count: " + myServer.GetThreadCount().ToString()); 
					System.Console.Out.WriteLine("Client count: " + myServer.GetClientCount().ToString()); 
					myServer.StopServer(); 
					System.Console.Out.WriteLine("Done!"); 
				} 
				else if(args.Length==2) 
				{ 
					const int nSize = 100; 
					const int nPause = 10; 
					XYNetClient[] pClients = new XYNetClient[nSize]; 
					for(int i=0;i0) System.Console.Out.WriteLine("arg0 = " + args[0]); 
				if(args.Length>1) System.Console.Out.WriteLine("arg1 = " + args[1]); 
			} 
		} 
	} 
}