Пример #1
0
        static void Main01(string[] args)
        {
            HelloRequest req = new HelloRequest.Builder()
                               .SetUser("JackieLee")
                               .SetText("Hello")
                               .Build();

            byte[] buffer = req.ToByteArray();

            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri("http://localhost:8080/");
            ByteArrayContent content = new ByteArrayContent(buffer);

            content.Headers.Add("Content-Type", "application/octet-stream");
            Stream        respStream = client.PostAsync("mars/hello", content).Result.Content.ReadAsStreamAsync().Result;
            HelloResponse resp       = HelloResponse.ParseFrom(respStream);
        }
Пример #2
0
        public override void ChannelRead(IChannelHandlerContext context, object message)
        {
            var byteBuffer = message as IByteBuffer;

            msgXp.decode((Stream)byteBuffer);

            HelloResponse resp = HelloResponse.ParseFrom(msgXp.body);

            "resp decoded, resp.retcode={0}, resp.err={1}".Log(resp.Retcode, resp.Errmsg);

            context.WriteAsync(message);

            return;

            if (byteBuffer != null)
            {
                Console.WriteLine("Received from server: " + byteBuffer.ToString(Encoding.UTF8));
            }
            context.WriteAsync(message);
        }
Пример #3
0
        public int curPrefix            = 0;//需要读取的数据总长度

        public void ReceivedCallback(IAsyncResult ar)
        {
            try
            {
                StateObject so       = (StateObject)ar.AsyncState;
                Socket      client   = so.workSocket;
                int         readSize = client.EndReceive(ar); //结束读取,返回已读取的缓冲区里的字节数组长度
                                                              //将每次读取的数据,写入内存流里
                receiveData.Write(so.buffer, 0, readSize);
                receiveData.Position = 0;

                NetMsgHeader msgXp = new NetMsgHeader();
                msgXp.decode(receiveData);

                HelloResponse resp = HelloResponse.ParseFrom(msgXp.body);
                "Retcode:{0}".Log(resp.Retcode);
                if (resp.HasErrmsg)
                {
                    resp.Errmsg.Log();
                }
            }
            catch
            { }
        }