java protobuffer 网络_C#与Java通过protobuf进行网络通信过程中遇到的问题

上周体验了一把protobuf,google大佬搞的东西据说很多人用,优点自然不用多说,随便搜搜结果一大堆。为了测试这个玩意,随便弄了一个客户端,拿C#写了一个简单的控制台程序请求服务端,服务端拿java的HttpServer做了一个简单的响应客户端请求。

Protobuf用的2.6.1版本。

客户端下载地址:https://github.com/andyqingliu/TestHttpClient.git

服务端下载地址:https://github.com/andyqingliu/TestHttpServer.git

(Note: 写了很多测试代码,为了测试方便,所以代码比较混乱。)

记录一些重要的信息备忘,顺便梳理一下当时的思路和遇到的几个重要的问题及解决方案。

1.客户端数据准备

a.用C#自带的WebClient类异步发送数据

WebClient wc = new WebClient();

wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

wc.Encoding = Encoding.UTF8;

wc.UploadDataCompleted += new UploadDataCompletedEventHandler(OnUploadDataCompleted);

wc.UploadDataAsync(uri, "POST", buff);

b.利用MemoryStream类来存放要发送给服务端的字节流。

原来MemoryStream有ToArray的方法直接把字节流转换为字节数组。刚开始自己写读取流方法一直有问题,写不了数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值