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报文的更多相关文章

  1. (转)JAVA socket 进行十六进制报文交互测试

    import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io. ...

  2. Java Socket发送与接收HTTP消息简单实现

    在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务,它可以用来模拟HTTP服务,用它可以截获HTTP请求的原始码流,让我们很清楚的了解到我们向服务发的HTTP消息的结 构 ...

  3. java socket 发送文件

    客户端: package tt; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStrea ...

  4. 发送xml报文去第三方请求获取xml报文数据

    import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import j ...

  5. socket发送http报文的疑惑(求高手指点一二)

    给8080或80端口的服务端(自己写的serverSocket服务端)发送字符串,此字符串按照http协议拼接而成,既是所谓的http报文.服务端接受成功.如果在报头与消息体之间少了“\r\n\r\n ...

  6. JAVA对象和XML文档、原来他们之间还有这一出

    最近项目开发中遇到一个问题,访问接口不再通过url地址请求的方式,而是 通过socket发送xml格式的报文到指定服务器来进行信息的统一认证.. 因此组装xml格式的报文字符串以及解析服务器返回的xm ...

  7. java对象与XML相互转化

    起因 最近在公司做了一次webservice相关的任务,其中我最敢兴趣的就是webservice接受到XML对应的流以后是如何方便的转化成java对象,而java对象又是如何生成对应的XML的. 目的 ...

  8. java socket报文通信(三)java对象和xml格式文件的相互转换

    前两节讲了socket服务端,客户端的建立以及报文的封装.今天就来讲一下java对象和xml格式文件的相互转换. 上一节中我们列举了一个报文格式,其实我们可以理解为其实就是一个字符串.但是我们不可能每 ...

  9. java socket报文通信(一)socket的建立

    java socket报文通信(一) socket的建立  今天来和大家分享一下java中如何使用socket进行通信.先来啰嗦两句,看看Tcp/ip和udp: TCP是Transfer Contro ...

随机推荐

  1. 关于iframe和div窗口中ajax请求200状态时执行的回调问题

    上一篇说了在ajax回调里面处理iframe窗口的刷新问题,这一篇记录一下遇到的一个分别在iframe和div窗口中ajax请求200状态时执行的回调问题. 我们先来看一下ajax请求的写法(这里使用 ...

  2. How to handle your webdriver exceptions

    The most common exceptions and their solutions: NoAlertPresentException Indicates that a user has tr ...

  3. 出书了!实战微信小程序

    真正用心写完一本书,才知道写书真的很不容易. 我热衷喜欢分享一些技术,也喜欢钻研一些新东西,去年微信小程序刚内测的时候,我和我的同事四个人就一起研究,恰好公司有小程序相关的项目,做项目的同时,越发感觉 ...

  4. C++将链表反转的实现

    有题目的需求是求将链表反转,例如1->2->3->4->5转变成5->4->3->2->1,经典的是可以有两种解决方法,递归方式和非递归方式,下面给出C ...

  5. WCF 配置文件

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.S ...

  6. 转载 iir直接i型和直接ii型滤波器

    1.IIR滤波器构造           之前在介绍FIR滤波器的时候,我们提到过,IIR滤波器的单位冲击响应是无限的!用差分方程来表达一个滤波器,应该是下式这个样子的.                ...

  7. vue router 传参 获取不到query,params

    千万要注意,获取query/params 是this.$route.query 不是this.$router.query!!!

  8. FastAdmin 将 PHP 框架升级到 ThinkPHP 5.1

    FastAdmin 将 PHP 框架升级到 ThinkPHP 5.1 社区经常有人问什么时候升级到 ThinkPHP 5.1,但是 ThinkPHP 5.1 和 ThinkPHP 5.0 差别非常大, ...

  9. 如何开启 FastAdmin 的顶部导航功能?

    如何开启 FastAdmin 的顶部导航功能? FastAdmin 默认的是侧边导航,但是如果功能多的时候就有会眼花缭乱,使用顶部导航就会清晰很多. 好消息现在已经支持顶部导航,可以在demo.fas ...

  10. ubuntu下使用code::blocks编译运行一个简单的gtk+2.0项目

    在具体的操作之前,首先需要安装一些必要的软件.ubuntu下默认安装了gcc,不过缺少必要的Header file,可以在命令行中输入下面的指令安装build-essential套件:sudo apt ...