求助!关于网络字节转换问题
目前我这边有一个http访问的程序,对方的响应消息网络协议是这样的字段名称 类型 长度 说明
a 32位无符号整数 4 高16位表示主版本,低16位表示低版本
(目前的通信协议是高16位为0xfefd, 低16位为 0xfcfb)b 32位无符号整数 4 表示长度
c 32位无符号整数 4 类型为32位无符号整数d 32位无符号整数 4 e 16位无符号整数 2
我的程序大概是这样写的
//通过http发送一个请求
url = new URL("http://xxx.xxx.xxx/xxx");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(0);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
HttpUrlLogin http =new HttpUrlLogin();
conn.getOutputStream().write("1".getBytes());//获取返回响应的字节流
InputStream in = conn.getInputStream();如何根据上面的协议得到a,b,c,d,e 的值,目前是我疑惑的地方,如果通过in一个个字节遍历循环得到的是乱码,我想应该会有字节转换的问题。但是这一块也就是需要大侠帮忙的地方
不知道代码怎么实现这些转换
目前我这边有一个http访问的程序,对方的响应消息网络协议是这样的字段名称 类型 长度 说明
a 32位无符号整数 4 高16位表示主版本,低16位表示低版本
(目前的通信协议是高16位为0xfefd, 低16位为 0xfcfb)b 32位无符号整数 4 表示长度
c 32位无符号整数 4 类型为32位无符号整数d 32位无符号整数 4 e 16位无符号整数 2
我的程序大概是这样写的
//通过http发送一个请求
url = new URL("http://xxx.xxx.xxx/xxx");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(0);
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
HttpUrlLogin http =new HttpUrlLogin();
conn.getOutputStream().write("1".getBytes());//获取返回响应的字节流
InputStream in = conn.getInputStream();如何根据上面的协议得到a,b,c,d,e 的值,目前是我疑惑的地方,如果通过in一个个字节遍历循环得到的是乱码,我想应该会有字节转换的问题。但是这一块也就是需要大侠帮忙的地方
不知道代码怎么实现这些转换
楼主可以试试 字符流 BufferedReader 来读取
另外:
DataInputSream 是二进制格式
PrintWirter 是文本格式