c++ socket怎么解决丢包问题

 我来答
匿名用户
2017-05-26
展开全部
@xiaoxia PrintStream out = new PrintStream(clientSocket.getOutputStream());
//接受数据,但不允许有中文,因为会乱码
DataInputStream in=new DataInputStream(clientSocket.getInputStream());
byte[] buffer = new byte[10000]; //缓冲区的大小
in.read(buffer); //处理接收到的报文,转换成字符串
/**
* C++传递过来的中文字,需要转化一下。C++默认使用GBK。
* GB2312是GBK的子集,只有简体中文。因为数据库用GB2312,所以这里直接转为GB2312
* */
String message = new String(buffer, "GB2312").trim();

这里服务器得到的字符串比客户端传过来的少很多,这个字符串是一段文本,挺多的一段(1000多字吧),有时候发送的快了,服务端就不能全部拿到,有时候可以。。
hubingdi1984
2017-05-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:9437
采纳率:86%
帮助的人:9246万
展开全部
丢包问题,应该想办法提高网络通信质量吧,如果要求不能丢包,就对报文加一个长度信息,收到报文后,进行长度检验,如果长度不对说明有丢包。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式