public static void Main(string[] args) { EventStore.AddNewEvent(new Core.Event.LoopSendingUDP(OnLoopSedingUDP)); EventStore.AddNewEvent(new Core.Event.Authtcation(onAtho)); EventStore.AddNewEvent(new Core.Event.Broadcast(Brodcast)); Server.ZoneWorking.Add(new ServerGame.Core.Zone.Lobby()); ServerGame.Program.Room.RoomMaster.init(); // Server.RoomWorking.Add() Console.ForegroundColor = ConsoleColor.White; while (true) { Console.Write("Server#: "); var consoleRead = Console.ReadLine(); if (consoleRead.Trim().TrimStart().TrimEnd().Length != 0) { var ff = CommandLine.Parser.Default.ParseArguments < startServer, ShowAllConnctions, Exit, sendstring > (consoleRead.Split(' ') ); ff.MapResult( (startServer opts) => RunServerAndReturnExitCode(opts), (ShowAllConnctions opts) => RunShowAllConnctionsAndReturnExitCode(opts), (Exit opts) => RunExitReturnExitCode(opts), (sendstring opts) => RunSendReturnExitCode(opts), ((errs) => HandleParseError(errs)) ); System.GC.Collect(); } } }
private static void StartClient() { EventStore.AddNewEvent(new ServerGame.Core.Event.LoopSendingUDP(OnLoopSedingUDP)); EventStore.AddNewEvent(new ServerGame.Core.Event.Authtcation(OnAuthtcation)); EventStore.AddNewEvent(new ServerGame.Core.Event.ConvertConnctionToNewServeerPort(OnConvertConnctionToNewServeerPort)); EventStore.AddNewEvent(new ServerGame.Core.Event.Broadcast(OnBroadcast)); Console.WriteLine("Please Enter IP(if not is same machen name) : "); ip = Console.ReadLine(); if (ip == "") { ip = Dns.GetHostName(); } var _tcp = true; Console.WriteLine("Please Enter false or 0 or press enter if use udp : "); var ss = Console.ReadLine(); if (ss == "0" || ss == "false" || ss == "") { _tcp = false; } if (_tcp) { Console.WriteLine("enter port number deflut is : " + porttcp.ToString()); var _port = Console.ReadLine(); if (_port != "") { port = Convert.ToInt32(_port); } else { port = porttcp; } } else { Console.WriteLine("Please Enter port(if not,is 9998) : "); var _port = Console.ReadLine(); if (_port != "") { port = Convert.ToInt32(_port); } else { port = portudp; } } try { if (_tcp) { IPHostEntry ipHostInfo = Dns.GetHostEntry(ip);//Dns.GetHostEntry("net.super-bots.com"); IPAddress ipAddress = ipHostInfo.AddressList[ipHostInfo.AddressList.Length - 1]; IPEndPoint remoteEP = new IPEndPoint(ipAddress, port); // Create a TCP/IP socket. Socket client = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client); connectDone.WaitOne(); if (client.Connected == false) { return; } Task.Run(() => { while (true) { receiveDone.Reset(); Receive(client); receiveDone.WaitOne(); Console.WriteLine("Response received : {0}", response); } }); PackSendData data = null; List <Data> datalist = null; while (true) { var readline = Console.ReadLine(); if (readline == "close") { break; } if (readline.Split(' ')[0].Trim() == "loop") // loop 500 20 mohmmadmaskdmqkmfwemgflwjnemgljnwejgjwhnglkwe { var manytime = Convert.ToInt32(readline.Split(' ')[1]); var sleeptimeMilSec = Convert.ToInt32(readline.Split(' ')[2]); var world = ""; for (int i = 3; i < readline.Split(' ').Length; i++) { world += " " + readline.Split(' ')[i]; } while (manytime > 0) { sendDone.Reset(); datalist = new List <Data>(); datalist.Add(new Data(manytime.ToString() + world, (byte)DataType.String)); data = new PackSendData(1, datalist); Send(client, ServerGame.Core.Serialize.Serialize.serialize(data)); sendDone.WaitOne(); manytime--; Thread.Sleep(sleeptimeMilSec); } } else if (readline.Split(' ')[0].Trim() == "event") // loop 500 20 mohmmadmaskdmqkmfwemgflwjnemgljnwejgjwhnglkwe { var datasnding = readline.Split(' '); var numberevnet = Convert.ToInt32(datasnding[1]); var world = ""; for (int i = 2; i < readline.Split(' ').Length; i++) { world += " " + readline.Split(' ')[i]; } switch (numberevnet) { case 1: datalist = new List <Data>(); datalist.Add(new Data(datasnding[2], 0)); datalist.Add(new Data(datasnding[3], 1)); datalist.Add(new Data(datasnding[4], 2)); datalist.Add(new Data(datasnding[5], 3)); data = new PackSendData(1, datalist); Send(client, ServerGame.Core.Serialize.Serialize.serialize(data)); break; case 2: datalist = new List <Data>(); datalist.Add(new Data(world, 0)); data = new PackSendData(2, datalist); Send(client, ServerGame.Core.Serialize.Serialize.serialize(data)); break; default: break; } } datalist = new List <Data>(); datalist.Add(new Data(readline, (byte)DataType.String)); data = new PackSendData(0, datalist); Send(client, ServerGame.Core.Serialize.Serialize.serialize(data)); sendDone.WaitOne(); } // Release the socket. client.Shutdown(SocketShutdown.Both); client.Close(); } else { startRciverUDP(); while (true) { var readline = Console.ReadLine(); if (readline == "stop") { break; } List <Data> datalist = null; PackSendData data = null; if (readline.Split(' ')[0].Trim() == "event") { var datasnding = readline.Split(' '); var numberevnet = Convert.ToInt32(datasnding[1]); var world = ""; for (int i = 2; i < readline.Split(' ').Length; i++) { world += " " + readline.Split(' ')[i]; } switch (numberevnet) { case 1: datalist = new List <Data>(); datalist.Add(new Data(datasnding[2], 0)); datalist.Add(new Data(datasnding[3], 1)); datalist.Add(new Data(datasnding[4], 2)); datalist.Add(new Data(datasnding[5], 3)); data = new PackSendData(1, datalist); startSendUDP(data); break; case 2: datalist = new List <Data>(); datalist.Add(new Data(world, 0)); data = new PackSendData(2, datalist); startSendUDP(data); break; default: break; } } else if (readline.Split(' ')[0].Trim() == "loop") { var manytime = Convert.ToInt32(readline.Split(' ')[1]); var sleeptimeMilSec = Convert.ToInt32(readline.Split(' ')[2]); var world = ""; for (int i = 3; i < readline.Split(' ').Length; i++) { world += " " + readline.Split(' ')[i]; } while (manytime > 0) { sendDone.Reset(); datalist = new List <Data>(); datalist.Add(new Data(manytime.ToString() + world, (byte)DataType.String)); data = new PackSendData(0, datalist); startSendUDP(data); sendDone.WaitOne(); manytime--; Thread.Sleep(sleeptimeMilSec); } } else { datalist = new List <Data>(); datalist.Add(new Data(readline, 0)); data = new PackSendData(0, datalist); startSendUDP(data); } } } } catch (Exception e) { Console.WriteLine(e.ToString()); } }