ServerRun.java

  1. import java.io.InputStream;
  2. import java.net.ServerSocket;
  3. import java.net.Socket;
  4.  
  5. public class ServerRun {
  6.  
  7. public static void main(String[] args) throws Exception {
  8. ServerSocket server = new ServerSocket(3456);
  9. System.out.println("-----正在监听3456端口---");
  10. Socket socket = server.accept();
  11. InputStream is = socket.getInputStream();
  12. // 前8个字节
  13. byte[] b = new byte[8];
  14. is.read(b);
  15. int len = Integer.parseInt(new String(b, "UTF-8"));
  16.  
  17. // 用来填充xml
  18. b = new byte[len];
  19. is.read(b);
  20.  
  21. // 关闭资源
  22. is.close();
  23. socket.close();
  24. server.close();
  25.  
  26. String result = new String(b, "UTF-8");
  27. System.out.println(result);
  28.  
  29. }
  30.  
  31. }

ClientRun.java

  1. import java.io.OutputStream;
  2. import java.net.Socket;
  3.  
  4. public class ClientRun {
  5.  
  6. public static void main(String[] args) throws Exception {
  7. String xml = "<xml>\r\n" +
  8. "<name>张山</name>\r\n" +
  9. "<amt>100000</amt>\r\n" +
  10. "<time>20171011091230</time>\r\n" +
  11. "<type>支出</type>\r\n" +
  12. "<opt>信用卡还款</opt>\r\n" +
  13. "<phone>18940916007</phone>\r\n" +
  14. "</xml>";
  15. Socket client = new Socket("127.0.0.1", 3456);
  16. OutputStream out = client.getOutputStream();
  17.  
  18. byte[] b = xml.getBytes("UTF-8");
  19.  
  20. out.write(int2Bytes8(b.length));
  21. out.write(b);
  22. out.close();
  23. client.close();
  24. }
  25.  
  26. /**
  27. * @Title: int2Bytes8
  28. * @Description: 数字[2] 变成八个字节的 ['0' '0' '0' '0' '0' '0' '0' '2']
  29. * @param: @param num
  30. * @param: @return
  31. * @return: byte[]
  32. */
  33. public static byte[] int2Bytes8(int num) {
  34. StringBuffer sb = new StringBuffer(String.valueOf(num));
  35. int length = 8 - sb.length();
  36. for (int i = 0; i < length; i++) {
  37. sb.insert(0, '0');
  38. }
  39. return sb.toString().getBytes();
  40. }
  41. }

注:代码中字符串的拼接

是eclipse自动完成的,我只是从wps ( 其他文本编辑器也可以)里面复制到

  1. String str="copy here";
  1.  

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. js鼠标拖动(转自刘68)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. Android中从SD卡中获取歌词并与歌曲同步

    先看看效果图吧,再看代码 转换文件的编码格式 package com.xm; import java.io.BufferedInputStream; import java.io.BufferedRe ...

  3. [QT][SQLITE][QTDEMO]qt5.8_sqlite数据库_demo

    qt环境:5.8 数据库:sqlite //-------------------------------------- sqlite 日期 搜索 -------------------------- ...

  4. 剑指Offer面试题:6.旋转数组中的最小数字

    一 题目:旋转数组中的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1, ...

  5. AUL恢复truncate删除的表

    背景 接到用户申告,新毕业的兄弟不小心把数据库中的3个关键表给truncate了,由于这个业务还在测试阶段,系统没有任何形式的备份. 客户的OS平台是windows平台,数据库是Oracle9207 ...

  6. 7天学会HTML-Day01

    HTML初步 关键词: B/S C/S .服务器访问原理.标签.html特性.列表.图片 1.B/S 和C/S 架构 B/S -> browser/server 浏览器服务器架构 C/S -&g ...

  7. Windows下通过Composer安装Yii2 [ 2.0 版本 ]

    安装好大于5.4或更高版本的PHP环境并开启openssl扩展.如果是Apache服务器,加载Apache的mod_ssl模块. 下载Composer并安装. 开始->运行[或者WIN+R]-& ...

  8. Linux yum操作时出现Error: xz compression not available

    yum升级PHP版本的时候出现这个问题 由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compressi ...

  9. php写入、追加写入文件的实例

    $myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); $t ...

  10. Jenkins的用户管理

    用户管理入口 Jenkins首页有一个用户,但是只能从那查看用户列表和信息,管理用户的入口在Jenkins->系统管理->管理用户 新建用户 在管理用户左侧有一个新增用户,点击后按照表单填 ...