java socket发送xml报文
ServerRun.java
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket; public class ServerRun { public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(3456);
System.out.println("-----正在监听3456端口---");
Socket socket = server.accept();
InputStream is = socket.getInputStream();
// 前8个字节
byte[] b = new byte[8];
is.read(b);
int len = Integer.parseInt(new String(b, "UTF-8")); // 用来填充xml
b = new byte[len];
is.read(b); // 关闭资源
is.close();
socket.close();
server.close(); String result = new String(b, "UTF-8");
System.out.println(result); } }
ClientRun.java
import java.io.OutputStream;
import java.net.Socket; public class ClientRun { public static void main(String[] args) throws Exception {
String xml = "<xml>\r\n" +
"<name>张山</name>\r\n" +
"<amt>100000</amt>\r\n" +
"<time>20171011091230</time>\r\n" +
"<type>支出</type>\r\n" +
"<opt>信用卡还款</opt>\r\n" +
"<phone>18940916007</phone>\r\n" +
"</xml>";
Socket client = new Socket("127.0.0.1", 3456);
OutputStream out = client.getOutputStream(); byte[] b = xml.getBytes("UTF-8"); out.write(int2Bytes8(b.length));
out.write(b);
out.close();
client.close();
} /**
* @Title: int2Bytes8
* @Description: 数字[2] 变成八个字节的 ['0' '0' '0' '0' '0' '0' '0' '2']
* @param: @param num
* @param: @return
* @return: byte[]
*/
public static byte[] int2Bytes8(int num) {
StringBuffer sb = new StringBuffer(String.valueOf(num));
int length = 8 - sb.length();
for (int i = 0; i < length; i++) {
sb.insert(0, '0');
}
return sb.toString().getBytes();
}
}
注:代码中字符串的拼接
是eclipse自动完成的,我只是从wps ( 其他文本编辑器也可以)里面复制到
String str="copy here";
java socket发送xml报文的更多相关文章
- (转)JAVA socket 进行十六进制报文交互测试
import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io. ...
- Java Socket发送与接收HTTP消息简单实现
在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务,它可以用来模拟HTTP服务,用它可以截获HTTP请求的原始码流,让我们很清楚的了解到我们向服务发的HTTP消息的结 构 ...
- java socket 发送文件
客户端: package tt; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStrea ...
- 发送xml报文去第三方请求获取xml报文数据
import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import j ...
- socket发送http报文的疑惑(求高手指点一二)
给8080或80端口的服务端(自己写的serverSocket服务端)发送字符串,此字符串按照http协议拼接而成,既是所谓的http报文.服务端接受成功.如果在报头与消息体之间少了“\r\n\r\n ...
- JAVA对象和XML文档、原来他们之间还有这一出
最近项目开发中遇到一个问题,访问接口不再通过url地址请求的方式,而是 通过socket发送xml格式的报文到指定服务器来进行信息的统一认证.. 因此组装xml格式的报文字符串以及解析服务器返回的xm ...
- java对象与XML相互转化
起因 最近在公司做了一次webservice相关的任务,其中我最敢兴趣的就是webservice接受到XML对应的流以后是如何方便的转化成java对象,而java对象又是如何生成对应的XML的. 目的 ...
- java socket报文通信(三)java对象和xml格式文件的相互转换
前两节讲了socket服务端,客户端的建立以及报文的封装.今天就来讲一下java对象和xml格式文件的相互转换. 上一节中我们列举了一个报文格式,其实我们可以理解为其实就是一个字符串.但是我们不可能每 ...
- java socket报文通信(一)socket的建立
java socket报文通信(一) socket的建立 今天来和大家分享一下java中如何使用socket进行通信.先来啰嗦两句,看看Tcp/ip和udp: TCP是Transfer Contro ...
随机推荐
- CABAC与CAVLC有什么区别?
待完善 7.3.12 用 CAVLC 方式编码的残差数据的语义 coeff_token 指明了非零系数的个数,拖尾系数的个数. trailing_ones_sign_flag 拖尾系数的符号 - ...
- SEH:结构化异常处理 学习
SEH:结构化异常处理 结构化异常处理机制提供了一个操作系统,用于优化结构的方案,为客户提供更强大的程序执行环境.试想一下,你写程序不用考虑内存访问错误,那里是空指针错误,一直在按照程序的逻辑结构来写 ...
- fedora to ubunto
Fedora to Ubuntu16.04 一.删除Fedora 由于双系统启动的时候是由linux系统做引导启动,所以在Windows下直接格式化Linux分区将导致无法启动Windows.解决办法 ...
- "==" 与 "is"的区别
Is there a difference between `==` and `is` in Python? "=="是比较内容相当;"is"是比较对象的id是 ...
- Linux部分常用命令学习(一)
什么是linux命令? 是一个可执行程序,就像我们所看到的位于目录/usr/bin 中的文件一样. 属于这一类的程序,可以编译成二进制文件,诸如用 C 和 C++语言写成的程序, 也可以是由脚本语言写 ...
- NOIP模拟题 管道
题目大意 给定$n$个点的无向图,求它的$Dfs$序方案数$n\leq 18$ 题解 状压$Dp+$记忆化搜索. 设$F_{i,now}$表示到达$i$其中$now$集合代表的点集已经遍历过,还需要遍 ...
- BZOJ - 3196 Tyvj 1730 二逼平衡树 (线段树套treap)
题目链接 区间线段树套treap,空间复杂度$O(nlogn)$,时间复杂度除了查询区间k大是$O(log^3n)$以外都是$O(log^2n)$的. (据说线段树套线段树.树状数组套线段树也能过?) ...
- BZOJ - 5427:最长上升子序列 (二分&思维)
现在给你一个长度为n的整数序列,其中有一些数已经模糊不清了,现在请你任意确定这些整数的值, 使得最长上升子序列最长.(为何最长呢?因为hxy向来对自己的rp很有信心) Input 第一行一个正整数 ...
- HDU - 6433: H. Pow (简答题,输出大数)
There are n numbers 3^0, 3^1, . . . , 3^n-1. Each time you can choose a subset of them (may be empty ...
- HWOJ-字符串的逆序
将一个字符串str的内容颠倒过来,并输出.str的长度不超过100个字符. 如:输入“I am a student”,输出“tneduts a ma I”. 输入参数: inputString:输入的 ...