c++ socket怎么解决丢包问题
2个回答
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多字吧),有时候发送的快了,服务端就不能全部拿到,有时候可以。。
//接受数据,但不允许有中文,因为会乱码
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多字吧),有时候发送的快了,服务端就不能全部拿到,有时候可以。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询