Esempio n. 1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="host">远端主机地址</param>
        /// <param name="port"></param>
        /// <param name="route">远端执行方法名</param>
        /// <param name="param">参数</param>
        protected void DoRequest(string host, int port, string route, string param, int bufferSize)
        {
            using (SocketClient client = new SocketClient(host, port, bufferSize))
            {
                client.ErrorHandle += DoError;
                client.ReceiveHandle += DoReceive;

                if (client.Connect())
                {
                    param = HttpUtility.UrlEncode(GetRemoteParam(GameID, ServerID, param), Encoding.UTF8);
                    byte[] data = Encoding.UTF8.GetBytes(string.Format("route:{0}?d={1}", route, param));
                    data = BufferUtils.MergeBytes(BufferUtils.GetSocketBytes(data.Length), data);
                    client.SendAsync(data);
                    client.ReceiveResult();
                }
            }
        }