/** * * * * @param session * @param doc * @param item */ public void doorLoadDBTypeOK(SocketConnector session, XmlDocument doc, SessionMessage item) { //<msg t='DBS'><body action='loadDBTypeOK'> //<session>127.0.0.1:57107</session> //<DBTypeModel><mode>dz</mode><ver>X2.0</ver><sql>MySql</sql></DBTypeModel></body></msg> try{ //trace(doc.ToString()); getGameLogicServer().selectDB = DBTypeModel.fromXML(doc); XmlNode c = doc.SelectSingleNode("/msg/body/session"); String userIpPort = c.InnerText; AppSession userSession = getGameLogicServer().netGetSession(userIpPort); String sAction = ServerAction.loadDBTypeOK; if (null != userSession) { getGameLogicServer().Send(userSession, XmlInstruction.fengBao(sAction, getGameLogicServer().selectDB.toXMLString(true))); Log.WriteStrBySend(sAction, userSession.getRemoteEndPoint().ToString()); } } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorLoadDBTypeOK", exd.Message); } }
/** * * * @param session * @param doc * @param item */ public void doorLoadTopListOK(SocketConnector session, XmlDocument doc, SessionMessage item) { try { //<session>127.0.0.1:64828</session><chart total_add="0" total_sub="0"></chart> XmlNode node = doc.SelectSingleNode("/msg/body"); String userStrIpPort = node.ChildNodes[0].InnerText; //InnerText; String topListXml = node.ChildNodes[1].OuterXml; //(new XMLOutputter()).outputString(node.ChildNodes()[1]); // String saction = ServerAction.topList; //回复 //注意这里的session是上面的usersession,要判断是否还在线 AppSession userSession = this.getGameLogicServer().CLIENTAcceptor.getSession(userStrIpPort); // this.getGameLogicServer().Send(userSession, XmlInstruction.fengBao(saction, topListXml)); } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorLoadTopListOK", exd.Message, exd.StackTrace); } }
public void doorHasRegOK(SocketConnector session, XmlDocument doc, SessionMessage item) { try { XmlNode node = doc.SelectSingleNode("/msg/body"); String userStrIpPort = node.ChildNodes[0].InnerText; //InnerText; AppSession userSession = getGameLogicServer().CLIENTAcceptor.getSession(userStrIpPort); // String saction = ServerAction.hasRegOK; String contentXml = ""; //如果不在线则略过发送 getGameLogicServer().Send(userSession, XmlInstruction.fengBao(saction, contentXml)); // Log.WriteStrBySend(saction, userSession.getRemoteEndPoint().ToString()); } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorHasRegOK", exd.Message, exd.StackTrace); } }
/// <summary> /// 异步连接 /// </summary> /// <param name="remoteEndPoint">远程网络标识</param> /// <param name="state">连接状态</param> /// <param name="cancellationToken">异步操作表示</param> /// <returns></returns> protected override async ValueTask <ConnectState> ConnectAsync(EndPoint remoteEndPoint, ConnectState state, CancellationToken cancellationToken) { var socketConnector = new SocketConnector() as IConnector; var proxyEndPoint = _proxyEndPoint; ConnectState result; try { result = await socketConnector.ConnectAsync(proxyEndPoint, null, cancellationToken); if (!result.Result) { return(result); } } catch (Exception e) { return(new ConnectState { Result = false, Exception = e }); } return(await ConnectProxyAsync(remoteEndPoint, state, cancellationToken)); }
static async Task Main(string[] args) { CommandLineArgs commandLineArgs = null; Parser.Default.ParseArguments <CommandLineArgs>(args) .WithParsed(options => { Console.WriteLine($"Start sharing {options.Path}"); commandLineArgs = options; }) .WithNotParsed(options => { Console.WriteLine("Error -- Path is not correct"); Console.ReadLine(); }); if (commandLineArgs != null) { FileConnector.ConnectedPath = commandLineArgs.Path; var connector = new SocketConnector(); await connector.StartClient(new Uri("ws://filegate.io/socket")); while (true) { var command = Console.ReadLine(); if (command == ".exit") { break; } } await connector.StopClient(); } }
void Start() { SocketConnector __socket = new SocketConnector(); Action __callbackFinished = delegate { Debug.Log("Socket Iniciado"); __socket.SendData("Dados :D"); }; __socket.AInitialize(); __socket.TryToConnectToSocket("127.0.0.1", 1300, __callbackFinished, null); //__socket.OpenAndTryToConnectToSocket("127.0.0.1", 1300, 1, 120f, true, __callbackFinished, null); TesteData __testeData = new TesteData(); __testeData.listString = new List <string>(); __testeData.listString.Add("penis"); __testeData.listString.Add("v****a"); __socket.SendData(JsonUtility.ToJson(__testeData)); __socket.onSocketResponse += delegate(string p_response) { Debug.Log("Socket response: " + p_response); __socket.StopReadingSocketDataThread(); }; __socket.StartReadSocketDataThread(); //__socket.ReadSocketData(); }
Player() { isLogined = false; userId = ""; selectedRole = -1; roles = new List <Role> (); connector = SocketConnector.GetInstance(); }
public override void Start() { SocketConnector node = null; IPEndPoint remote = new IPEndPoint(this._remote, this._port); //注意 这里SocketConnector的第三个参数不能是OnConnected 否则会死循环 node = new SocketConnector("default", remote, this, base.RegisterConnection, OnDisconnected); node.Start(); autoEvent.WaitOne(); }
private static bool Connect() { bool result = false; IntelliSenseServer.Register(); // Create a client connector which will do an initial request to the Opus ServerSocket and retrieve all available methods. var socketConnector = new SocketConnector(); MethodRegistry registry = new MethodRegistry(socketConnector); // Execute the INITIALIZE function to retrieve all available functions from the client ResponsePayload response = socketConnector.executeFn(new FunctionPayload(SocketConnector.INITIALIZE)); if (response != null && response.matrix != null && response.matrix.data != null) { // The inital request returns the available functions. // Example Message from Client: // { "name":"INITIALIZE", // "matrix":[["getVersion",[]],["getPortfolio",[["accountSegmentId","The Account Segment Id for which the Portfolio will be fetched."]]],["getCurrencies",[]]],"error":""} response.matrix.data.ForEach(entry => { // TODO: Create a serializable Wrapper Class to do this. var arguments = new List <OpuxlArgumentAttribute>(); // First Element is the function name string functionName = (string)entry.ElementAt(0); string functionDescription = (string)entry.ElementAt(1); // and second Element is an array of parameterName/parameterDescription pairs. JArray argsArray = (JArray)entry.ElementAt(2); foreach (JArray arg in argsArray) { // Create an Excel Argument for each Function Parameter. arguments.Add(new OpuxlArgumentAttribute { Name = arg.ElementAt(0).ToString(), Description = arg.ElementAt(1).ToString(), Type = Main.ParseEnum <ExcelType>(arg.ElementAt(2).ToString()), Optional = Boolean.Parse(arg.ElementAt(3).ToString()) }); } // Create a delegate in our registry for each function registry.addDelegate(functionName, functionDescription, arguments); }); result = true; } else { Debug.WriteLine("Response not set, cant register functions."); } // Register all retrieves functions as delegates which are going to be available in excel. registry.createDelegates(); return(result); }
/** * 每日登陆(至少玩一把) * * @param session * @param doc * @param item */ public void doorChkEveryDayLoginAndGetOK(SocketConnector session, XmlDocument doc, SessionMessage item) { try { XmlNode gameNode = doc.SelectSingleNode("/msg/body/game"); //具体奖励数额 String gv = gameNode.Attributes["v"].Value; // XmlNode node = doc.SelectSingleNode("/msg/body/game"); int len = node.ChildNodes.Count; for (int i = 0; i < len; i++) { String edlValue = node.ChildNodes[i].Attributes["edl"].Value; String id = node.ChildNodes[i].Attributes["id"].Value; IUserModel u = getGameLogicServer().CLIENTAcceptor.getUserById(id); if (u == null) { continue; } String userStrIpPort = u.getstrIpPort(); //node.ChildNodes()[i].getAttributeValue("session"); String saction = ""; saction = ServerAction.everyDayLoginVarsUpdate; // //回复 //注意这里的session是上面的usersession,要判断是否还在线 if (getGameLogicServer().CLIENTAcceptor.hasSession(userStrIpPort)) { AppSession userSession = getGameLogicServer().CLIENTAcceptor.getSession(userStrIpPort); getGameLogicServer().Send(userSession, XmlInstruction.fengBao(saction, "<edl v='" + gv + "'>" + edlValue + "</edl>")); // Log.WriteStrBySend(saction, userStrIpPort); } } //end for } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorChkEveryDayLoginAndGetOK", exd.Message); } }
/// <summary> /// begin connect /// </summary> private void BeginConnect() { SocketConnector.Connect(this._endPoint).ContinueWith(c => { if (c.IsFaulted) { TaskEx.Delay(new Random().Next(1000, 3000)).ContinueWith(_ => this.BeginConnect()); return; } base.RegisterConnection(base.NewConnection(c.Result)); }); }
public async Task T99_Success() { var serverSocket = Utilities.CreateSocket(); serverSocket.Bind(IPEndPoint); serverSocket.Listen(10); var socket = await SocketConnector.ConnectAsync(IPEndPoint, Logger); new SocketDisposer(socket, Logger).Dispose(); serverSocket.Dispose(); }
static int Main(string[] args) { System.Diagnostics.Debug.WriteLine("Starting ..."); var server = new SocketConnector(); ResponsePayload response = server.executeFn(new FunctionPayload(SocketConnector.INITIALIZE)); if (response.name.Equals(SocketConnector.INITIALIZE)) { System.Diagnostics.Debug.WriteLine("Register the following methods: " + response.ToString()); } return(0); }
public async Task T10_Success() { var serverSocket = Utilities.CreateSocket(); serverSocket.Bind(IPEndPoint); serverSocket.Listen(10); var socket = await SocketConnector.ConnectAsync(IPEndPoint, Logger); Assert.True(socket.Connected); socket.Close(); serverSocket.Dispose(); }
/// <summary> /// begin connect /// </summary> private void BeginConnect() { SocketConnector.BeginConnect(this._endPoint, this, connection => { if (connection == null) { TaskEx.Delay(new Random().Next(1000, 3000), this.BeginConnect); } else { base.RegisterConnection(connection); } }); }
/// <summary> /// if the socket has connected then return true else return false /// </summary> /// <returns></returns> public void Connect() { _connected = false; SocketConnector sc = new SocketConnector(ip, port); ThreadPool.QueueUserWorkItem(new WaitCallback(ConnectedCallBack), sc); if (sc.manualEvent.WaitOne(timeout, false)) { if (sc.tcpClient != null) { _client = sc.tcpClient; _connected = true; } } }
/// <summary> /// async connect /// </summary> /// <param name="asyncResult"></param> private static void ConnectedCallBack(object asyncResult) { SocketConnector sc = (SocketConnector)asyncResult; try { TcpClient tc = new TcpClient(sc._ip, sc._port); sc.tcpClient = tc; sc.manualEvent.Set(); } catch (Exception e) { sc.manualEvent.Set(); } }
public void doorRegOK(SocketConnector session, XmlDocument doc, SessionMessage item) { try { XmlNode node = doc.SelectSingleNode("/msg/body"); String userStrIpPort = node.ChildNodes[0].InnerText; //InnerText; String usersex = node.ChildNodes[1].InnerText; String username = node.ChildNodes[2].InnerText; String userpwd = node.ChildNodes[3].InnerText; String useremail = node.ChildNodes[4].InnerText; //这里的mail是email String bbs = node.ChildNodes[5].InnerText; String sid = node.ChildNodes[6].InnerText; int id_sql = parseInt(node.ChildNodes[7].InnerText); // String saction = ServerAction.regOK; //回复 //注意这里的session是上面的usersession,要判断是否还在线 AppSession userSession = getGameLogicServer().CLIENTAcceptor.getSession(userStrIpPort); String contentXml = "<session>" + userStrIpPort + "</session><sex>" + usersex + "</sex><nick><![CDATA[" + username + "]]></nick><pwd><![CDATA[" + userpwd + "]]></pwd><bbs><![CDATA[" + bbs + "]]></bbs>" + //"<hico><![CDATA[" + hico + "]]></hico>" + //"<sid><![CDATA[" + sid + "]]></sid>" + "<id_sql>" + id_sql.ToString() + "</id_sql>" + "<mail>" + useremail + "</mail>"; //如果不在线则略过发送 getGameLogicServer().Send(userSession, XmlInstruction.fengBao(saction, contentXml)); // Log.WriteStrBySend(saction, userSession.getRemoteEndPoint().ToString()); } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorRegOK", exd.Message); } }
private void OnClientDisconnectHandler(object sender, object disconnectState) { SocketConnector sc = sender as SocketConnector; if (sc != null) { _traffic.UnSubscribe(sc); } timerClient.Stop(); btnConnect.Invoke((MethodInvoker) delegate { btnConnect.BackgroundImage = Properties.Resources.NotConnect1; }); pnlFile.Invoke((MethodInvoker) delegate { pnlFile.Enabled = false; }); pnlTools.Invoke((MethodInvoker) delegate { pnlTools.Enabled = false; }); btnOptions.Invoke((MethodInvoker) delegate { btnOptions.Enabled = true; }); }
/// <summary> /// create socket connection /// </summary> private void CreateSocket() { var endPoint = this._serverlist[(Interlocked.Increment(ref this._hostAcquireTimes) & 0x7fffffff) % this._serverlist.Length]; SocketConnector.BeginConnect(endPoint, this._zkClient, connection => { if (connection == null) { TaskEx.Delay(new Random().Next(500, 1500), this.CreateSocket); return; } connection.Disconnected += this.OnDisconnected; this.FireConnected(endPoint.ToString(), connection); this.ConnectToZookeeper(endPoint.ToString(), connection); }); }
public void doorLoadGOK(SocketConnector session, XmlDocument doc, SessionMessage item) { try { XmlNode node = doc.SelectSingleNode("/msg/body"); String userStrIpPort = node.ChildNodes[0].InnerText; //InnerText; String g = node.ChildNodes[1].InnerText; //InnerText; String id_sql = node.ChildNodes[1].Attributes["id_sql"].Value; // String saction = ServerAction.gOK; //回复 //注意这里的session是上面的usersession,要判断是否还在线 AppSession userSession = getGameLogicServer().netGetSession(userStrIpPort); //如果不在线则略过发送 if (null != userSession) { IUserModel u = getGameLogicServer().CLIENTAcceptor.getUser(userStrIpPort); //以免引发不必要的异常,方便测试 if (!(g == "")) { u.setG(parseInt(g)); } getGameLogicServer().Send(userSession, XmlInstruction.fengBao(saction, "<g " + "id_sql='" + id_sql + "'" + ">" + g + "</g>")); // Log.WriteStrBySend(saction, userSession.getRemoteEndPoint().ToString()); } else { Log.WriteStrBySendFailed(saction, userSession.getRemoteEndPoint().ToString()); } //end if } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorLoadGOK", exd.Message); } }
public void doorNeedProof(SocketConnector session, XmlDocument doc, SessionMessage item) { try { String saction = ServerAction.hasProof; //回复 session.Write( XmlInstruction.DBfengBao(saction, "<proof>" + getGameLogicServer().RCConnector.getProof() + "</proof>") ); // Log.WriteStrBySend(saction, session.getRemoteEndPoint().ToString()); } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorNeedProof", exd.Message, exd.StackTrace); } }
public void doorRegKO(SocketConnector session, XmlDocument doc, SessionMessage item) { try { XmlNode node = doc.SelectSingleNode("/msg/body"); String userStrIpPort = node.ChildNodes[0].InnerText; String status = node.ChildNodes[1].InnerText; String param = node.ChildNodes[2].InnerText; // String saction = ServerAction.regKO; //回复 //注意这里的session是上面的usersession,要判断是否还在线 AppSession userSession = getGameLogicServer().CLIENTAcceptor.getSession(userStrIpPort); //如果不在线则略过发送 if (null != userSession) { //if (userSession.getConnected()) //{ getGameLogicServer().Send(userSession, XmlInstruction.fengBao(saction, "<status>" + status + "</status><p>" + param + "</p>")); // Log.WriteStrBySend(saction, userSession.getRemoteEndPoint().ToString()); //} //end if } else { Log.WriteStrBySendFailed(saction, userSession.getRemoteEndPoint().ToString()); } //end if } catch (Exception exd) { Log.WriteStrByException(CLASS_NAME(), "doorRegKO", exd.Message); } }
protected override async ValueTask <ConnectState> ConnectAsync(EndPoint remoteEndPoint, ConnectState state, CancellationToken cancellationToken) { var socketConnector = new SocketConnector() as IConnector; var proxyEndPoint = _proxyEndPoint; ConnectState result; try { result = await socketConnector.ConnectAsync(proxyEndPoint, null, cancellationToken); if (!result.Result) { return(result); } } catch (Exception e) { return(new ConnectState { Result = false, Exception = e }); } var channel = result.CreateChannel <HttpRequest>(new HttpPipelineFilter(), new ChannelOptions()); // send request //channel.SendAsync(); await foreach (var p in channel.RunAsync()) { // validating response } await channel.DetachAsync(); return(result); }
static void Main(string[] args) { try { //设置控制台的显示样式 Console.ForegroundColor = ConsoleColor.Green; //Console.ResetColor(); //Console.Clear(); //copy right Console.WriteLine("wdmir.com 2003-2015"); Console.WriteLine("www.silverFoxServer.net 2009-2015"); //语言 //mono不支持Culture //"zh-CN"; GameGlobals.lang = System.Globalization.CultureInfo.InstalledUICulture.Name; //test //GameGlobals.lang = "zh-HK"; SR.init(GameGlobals.lang); //3.1版本 - 澳门风云 Console.Title = SR.GetString(SR.Win_Title, SR.Ddz_displayName, "3.2", "2015/8/28");//"2014/2/10"); if (args.Length > 0 && args[0] == "nowin") { IntPtr ParenthWnd = new IntPtr(0); IntPtr et = new IntPtr(0); ParenthWnd = FindWindow(null, Console.Title); ShowWindow(ParenthWnd, 0);//隐藏本dos窗体, 0: 后台执行;1:正常启动;2:最小化到任务栏;3:最大化 } // GameGlobals.GAME_NAME = GAME_NAME; //Console.WriteLine("[Boot] " + Globals.svrName + " Server"); Console.WriteLine( SR.GetString(SR.BootSvr, SR.Ddz_displayName) ); //读取xml配置 XmlDocument configDoc = new XmlDocument(); //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 //string str = System.Environment.CurrentDirectory; //该程序如果由另一程序启动,则会有问题,获得的是另一程序的启动路径 // string appFileName = System.AppDomain.CurrentDomain.FriendlyName.ToLower(); //Console.WriteLine(appName); string configFileName = string.Empty; configFileName = "DdzServerConfig.xml"; //if (appFileName.IndexOf(".vshost.exe") >= 0) //{ // configFileName = "DdzServerConfig.xml"; //} //else if (appFileName == "ddzserver.exe") //{ // configFileName = "DdzServerConfig.xml"; //} //else if (appFileName == "ddzserver2.exe") //{ // configFileName = "DdzServerConfig2.xml"; //} //else if (appFileName == "ddzserver3.exe") //{ // configFileName = "DdzServerConfig3.xml"; //} // //Console.WriteLine("[Load File] " + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + configFileName); Console.WriteLine( SR.GetString(SR.LoadFile, System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + configFileName) ); configDoc.Load(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + configFileName); //IP信息 XmlNode node = configDoc.SelectSingleNode("/www.wdmir.net/group/main-server"); if (null == node) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.Can_not_find_node, "/www.wdmir.net/group/main-server")); Console.ForegroundColor = ConsoleColor.Green; } string ipAdr = node.ChildNodes[0].InnerText; int port = int.Parse(node.ChildNodes[1].InnerText); //房间信息 XmlNode tabNode = configDoc.SelectSingleNode("/www.wdmir.net/group/main-server/tabList"); // int tabNum = tabNode.ChildNodes.Count; List <ITabModel> tabList = new List <ITabModel>(); int k = 0; //房间名字 int j = 0; //ChildNodes int index = 0; for (k = 0; k < tabNum; k++) { TabModelByDdz Tab = (TabModelByDdz)TabModelFactory.Create(k); //房间数量负数没有意义 XmlNode e = tabNode.ChildNodes[index]; Tab.setTabName(e.Attributes["n"].Value); int size = e.ChildNodes.Count; //e.getChildren().size(); Tab.setRoomCount(size); //房间底分 Tab.setRoomG(Convert.ToInt32(e.Attributes["g"].Value)); //最少携带不需要警告 Tab.setRoomCarryG(Convert.ToInt32(e.Attributes["carryG"].Value)); //每局花费 Tab.setRoomCostG(float.Parse(e.Attributes["costG"].Value)); //自动匹配模式开启 Tab.setTabAutoMatchMode(Convert.ToInt32(e.Attributes["autoMatchMode"].Value)); //快速场模式开启 Tab.setQuickMode(Convert.ToInt32(e.Attributes["quickMode"].Value)); //自动匹配根据Logic设计规则,至少需要2个房间, //否则只有1个房间,换房间时会进入无限等待 if (1 == Tab.getTabAutoMatchMode() && 1 == Tab.getRoomCount()) { Console.WriteLine(SR.GetString(SR.getRoom_auto_match_mode_and_room_num_less_2(), "Tab " + index.ToString())); } int roomCount = Tab.getRoomCount(); for (j = 0; j < roomCount; j++) { Tab.getRoomName()[j] = e.ChildNodes[j].Attributes["n"].Value; //e.getChildren().get(j).getAttributeValue("n"); } //check // if (0 >= Tab.getRoomCount()) { Console.WriteLine(SR.GetString(SR.getRoom_num_zero(), "Tab " + index.ToString())); } if (1 <= Tab.getRoomCostG()) { Console.WriteLine(SR.GetString(SR.getRoom_costG_more_than_1(), "Tab " + index.ToString())); Tab.setRoomCostG(0.0f); } // tabList.Add(Tab); index++; } //安全域 string allowAccessFromDomain = node.ChildNodes[4].InnerText; if ("" == allowAccessFromDomain) { allowAccessFromDomain = "*"; } //是否允许负分 string allowPlayerGlessThanZeroOnGameOverStr = node.ChildNodes[5].InnerText; bool allowPlayerGlessThanZeroOnGameOver = false; if ("no" == allowPlayerGlessThanZeroOnGameOverStr.ToLower()) { allowPlayerGlessThanZeroOnGameOver = false; //Console.WriteLine("提示:游戏扣分时会出现负分已关闭"); Console.WriteLine(SR.GetString(SR.Allow_playerG_less_than_zero_on_game_over)); } else { allowPlayerGlessThanZeroOnGameOver = true; } //打印级别 int logLevel = int.Parse(node.ChildNodes[6].InnerText); if (0 == logLevel) { GameGlobals.logLvl = LoggerLvl.CLOSE0; } else if (1 == logLevel) { GameGlobals.logLvl = LoggerLvl.NORMAL1; } else { logLevel = 2; GameGlobals.logLvl = LoggerLvl.ALL2; } // Log.init(GameGlobals.GAME_NAME, GameGlobals.logLvl); //cost扣下来的钱存入指定帐号 string costUser = node.ChildNodes[7].InnerText; if ("" == costUser) { costUser = "******"; //Console.WriteLine("提示:未指定每局花费的存入帐号,默认设为admin"); Console.WriteLine( SR.GetString(SR.Cost_default_set_to_admin) ); } // string payUser = GameGlobals.payUser = node.ChildNodes[8].InnerText; // int runAwayMultiG = Convert.ToInt32(node.ChildNodes[9].InnerText); int reconnectionTime = Convert.ToInt32(node.ChildNodes[10].InnerText); //15秒是快牌场的的出牌时间 if (reconnectionTime < 30) { Console.WriteLine(SR.Room_reconnection_time_less_than_15); reconnectionTime = 30; } int everyDayLogin = Convert.ToInt32(node.ChildNodes[11].InnerText); //其它模块 XmlNode omNode = configDoc.SelectSingleNode("/www.wdmir.net/group/main-server/other-modules/turn-over-a-card"); if (null == omNode) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.Can_not_find_node, "/www.wdmir.net/group/main-server/other-modules/turn-over-a-card")); Console.ForegroundColor = ConsoleColor.Green; } int turnOver_a_Card_module_run = Convert.ToInt32(omNode.Attributes["run"].Value); Int64 turnOver_a_Card_module_g1 = Convert.ToInt64(omNode.Attributes["g1"].Value); Int64 turnOver_a_Card_module_g2 = Convert.ToInt64(omNode.Attributes["g2"].Value); Int64 turnOver_a_Card_module_g3 = Convert.ToInt64(omNode.Attributes["g3"].Value); float turnOver_a_Card_costG = float.Parse(omNode.Attributes["costG"].Value); if (0 == turnOver_a_Card_module_run) { //关闭 } else { Console.WriteLine( SR.GetString(SR.LoadModulesAndStart, SR.TurnOver_a_Card_module_displayName ) ); } // if (0 >= turnOver_a_Card_module_g1) { Console.WriteLine(SR.GetString(SR.TurnOver_a_Card_module_g_zero, "g1")); } if (0 >= turnOver_a_Card_module_g2) { Console.WriteLine(SR.GetString(SR.TurnOver_a_Card_module_g_zero, "g2")); } if (0 >= turnOver_a_Card_module_g3) { Console.WriteLine(SR.GetString(SR.TurnOver_a_Card_module_g_zero, "g3")); } // XmlNode rcNode = configDoc.SelectSingleNode("/www.wdmir.net/group/main-server/record-server"); if (null == rcNode) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.getCan_not_find_node(), "/www.wdmir.net/group/main-server/record-server")); Console.ForegroundColor = ConsoleColor.Green; } String connect_ipAdr2 = rcNode.ChildNodes[0].InnerText; int connect_port2 = Convert.ToInt32(rcNode.ChildNodes[1].InnerText); String proof = rcNode.ChildNodes[2].InnerText; //Console.WriteLine("[Load File] OK"); Console.WriteLine(SR.GetString(SR.getLoadFileSuccess())); //读取聊天过滤字符配置 XmlDocument filterWordDoc = new XmlDocument(); //Console.WriteLine("[Load File] " + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "FilterWordConfig.xml"); Console.WriteLine( SR.GetString(SR.LoadFile, System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "FilterWordConfig.xml") ); filterWordDoc.Load(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "FilterWordConfig.xml"); XmlNode filterLvl = filterWordDoc.SelectSingleNode("/www.wdmir.net/pubmsg-filter-level"); if (null == filterLvl) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.getCan_not_find_node(), "/www.wdmir.net/pubmsg-filter-level")); Console.ForegroundColor = ConsoleColor.Green; } XmlNode filterNode = filterWordDoc.SelectSingleNode("/www.wdmir.net/pubmsg-filter-word"); if (null == filterNode) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.getCan_not_find_node(), "/www.wdmir.net/pubmsg-filter-word")); Console.ForegroundColor = ConsoleColor.Green; } XmlNode filterMakeupNode = filterWordDoc.SelectSingleNode("/www.wdmir.net/pubmsg-filter-makeup-word"); if (null == filterNode) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.getCan_not_find_node(), "/www.wdmir.net/pubmsg-filter-makeup-word")); Console.ForegroundColor = ConsoleColor.Green; } FilterWordManager.init( filterLvl.ChildNodes[0].InnerText, filterNode.ChildNodes[0].InnerText, filterMakeupNode.ChildNodes[0].InnerText); Console.WriteLine( SR.GetString(SR.LoadFileSuccess) ); //处理类初始化 //处理类初始化 DdzLogic.getInstance().init(tabNode, tabList, costUser, allowPlayerGlessThanZeroOnGameOver, runAwayMultiG, reconnectionTime, everyDayLogin); //模块初始化 DdzLogic.getInstance().init_modules(costUser, turnOver_a_Card_module_run, turnOver_a_Card_module_g1, turnOver_a_Card_module_g2, turnOver_a_Card_module_g3, turnOver_a_Card_costG); DdzRCLogic.getInstance().init(DdzLogic.getInstance()); // DdzLPU.init(); //如果是连接DB的Connector,可能需要设置证书 SocketConnector connector = new SocketConnector(proof); connector.setHandler(new DdzRCClientHandler()); //与数据库的连接bufSize要大点 //默认的1024 * 8 connector.getSessionConfig().setReadBufferSize(1024 * 4); //使用了reuse,现半小时调为0 connector.getSessionConfig().setReceiveTimeout(0); // SocketAcceptor acceptor = new SocketAcceptor(payUser, GAME_NAME, allowAccessFromDomain, true); acceptor.setHandler(new DdzGameClientHandler()); //处理类引用connector //只可调用connector的send方法 DdzLogic.getInstance().setRCConnector(connector); DdzLogic.getInstance().setClientAcceptor(acceptor); //首先启动对内网的数据库服务的连接 connector.connect("127.0.0.1", 9500); //最后启动外网侦听 acceptor.bind("Any", port, false); //对于post builder,这里要加ReadLine string line; while ((line = Console.ReadLine()) != SR.Shutdown) { if (null == line) { //break; } else if (line == "shutdown") { break; } else if (line == "clear") { Console.Clear(); } else if (line == "port") { Console.WriteLine(port); } else { Console.WriteLine("unknow command"); } //Console.WriteLine("run command:" + line); } //Console.ReadLine(); } catch (Exception exd) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(SR.GetString(SR.Game_svr_start_failed, exd.Message)); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(SR.GetString(SR.Game_svr_failed_help)); Console.WriteLine("email:[email protected]"); Console.ReadLine(); } }
public async Task T03_Timeout() { var e = await Assert.ThrowsAsync <SocketException>(async() => await SocketConnector.ConnectAsync(IPEndPoint, Logger, 1)); Assert.Equal((int)SocketError.TimedOut, e.ErrorCode); }
public async Task T04_Cancellation() { var ct = new CancellationToken(true); await Assert.ThrowsAsync <OperationCanceledException>(async() => await SocketConnector.ConnectAsync(IPEndPoint, Logger, -1, ct)); }
public MethodRegistry(SocketConnector connector) : this() { this.connector = connector; }
public void doorProofKO(SocketConnector session, XmlDocument doc, SessionMessage item) { Log.WriteStr(SR.GetString(SR.getcert_vali_ko(), session.getRemoteEndPoint().ToString())); }
public virtual void doorLogOK(SocketConnector session, XmlDocument doc, SessionMessage item) { //need override }