急! socket 客户端接收大于10K的数据,接收不完整
我对socket不熟悉,但是这个事挺急,请各位帮我看看。谢谢了啊 ,分不够再加!!!
socket 向服务端请求数据,返回的数据如果小于10K,那么能看到xml的整个完整的格式如下:
<?xml version="1.0" encoding="GBK"?>
<root>
<header>
<name>
....
</name>
.....
</header>
</root>
如果大于10K,XML就不完整了,解析出来少了一部分,反正看不到结尾的</root>节点.... 换成循环读取貌似也是一样。。客户端代码如下:
急啊,感谢感谢!
socket 向服务端请求数据,返回的数据如果小于10K,那么能看到xml的整个完整的格式如下:
<?xml version="1.0" encoding="GBK"?>
<root>
<header>
<name>
....
</name>
.....
</header>
</root>
如果大于10K,XML就不完整了,解析出来少了一部分,反正看不到结尾的</root>节点.... 换成循环读取貌似也是一样。。客户端代码如下:
public String buildSocket4Sync(SocketConn sm, HostVO address, String cmd)
{
BufferedReader br = null;
InputStream in = null;
String result = "";
try
{
socket = new Socket(address.getIp(), address.getPort());
OutputStream socketOut = socket.getOutputStream();
socketOut.write(cmd.getBytes());
socketOut.write("\r\n".getBytes());
in = socket.getInputStream();
br = new BufferedReader(new InputStreamReader(in, "utf-8"));
String re;
StringBuffer sbf = new StringBuffer();
while ((re = br.readLine()) != null)
{
sbf.append(re);
}
if (sbf.length() != 0)
{
result = new String(Base64.decode(sbf.toString()), "utf-8");
// System.out.println(result);
}
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (null != br)
{
br.close();
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
return result;
}
急啊,感谢感谢!
...全文
相关推荐
三菱IQ-R系列PLC—socket通信作为客户端与服务器或上位机通信配置.pdf
三菱IQ-R系列PLC与上位机或服务器或TCP助手进行Socket通信,PLC作为客户端的配置说明
跨平台的游戏客户端Socket封装
依照惯例,先上代码: #pragma once #ifdef WIN32 #include #include #else #include #include #include #include #include #define SOCKET int #define SOCKET_ERROR -1 #define INVALID_SOCKET -1 #endif #ifnde
搜狗实验室技术交流文档 解决socket tcp C10K问题.zip
搜狗实验室技术交流文档 解决C10K问题.zip
Dos.rar_nine44k_python_python socket_python socket聊天_python聊天室
利用python socket构建多人在线聊天室,包括服务器和客户端。
socket select io模型传文件
使用socket select io模型传文件,3K一包.保证数据绝对唯一


Java SE
