コード例 #1
0
ファイル: ServerConnection.cs プロジェクト: hydh/Amatsukaze
 private async Task Send(RPCMethodId id, AddQueueRequest obj)
 {
     if (client != null)
     {
         var data       = new List <byte[]>();
         var ms         = new MemoryStream();
         var serializer = new DataContractSerializer(typeof(AddQueueRequest));
         serializer.WriteObject(ms, obj);
         data.Add(ms.ToArray());
         var    objbyes = RPCData.CombineChunks(data);
         byte[] bytes   = RPCData.Combine(
             BitConverter.GetBytes((short)id),
             BitConverter.GetBytes(objbyes.Length),
             objbyes);
         await client.GetStream().WriteAsync(bytes, 0, bytes.Length);
     }
 }
コード例 #2
0
        public static byte[] Serialize(RPCMethodId id, object obj)
        {
            Type type = ArgumentTypes[id];

            if (type == null)
            {
                return(RPCData.Combine(
                           BitConverter.GetBytes((short)id),
                           BitConverter.GetBytes((int)0)));
            }
            var objbyes = Serialize(type, obj);

            //Debug.Print("Send: " + System.Text.Encoding.UTF8.GetString(objbyes));
            return(RPCData.Combine(
                       BitConverter.GetBytes((short)id),
                       BitConverter.GetBytes(objbyes.Length),
                       objbyes));
        }