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 ...
随机推荐
- js鼠标拖动(转自刘68)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Android中从SD卡中获取歌词并与歌曲同步
先看看效果图吧,再看代码 转换文件的编码格式 package com.xm; import java.io.BufferedInputStream; import java.io.BufferedRe ...
- [QT][SQLITE][QTDEMO]qt5.8_sqlite数据库_demo
qt环境:5.8 数据库:sqlite //-------------------------------------- sqlite 日期 搜索 -------------------------- ...
- 剑指Offer面试题:6.旋转数组中的最小数字
一 题目:旋转数组中的最小数字 题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1, ...
- AUL恢复truncate删除的表
背景 接到用户申告,新毕业的兄弟不小心把数据库中的3个关键表给truncate了,由于这个业务还在测试阶段,系统没有任何形式的备份. 客户的OS平台是windows平台,数据库是Oracle9207 ...
- 7天学会HTML-Day01
HTML初步 关键词: B/S C/S .服务器访问原理.标签.html特性.列表.图片 1.B/S 和C/S 架构 B/S -> browser/server 浏览器服务器架构 C/S -&g ...
- Windows下通过Composer安装Yii2 [ 2.0 版本 ]
安装好大于5.4或更高版本的PHP环境并开启openssl扩展.如果是Apache服务器,加载Apache的mod_ssl模块. 下载Composer并安装. 开始->运行[或者WIN+R]-& ...
- Linux yum操作时出现Error: xz compression not available
yum升级PHP版本的时候出现这个问题 由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compressi ...
- php写入、追加写入文件的实例
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); $t ...
- Jenkins的用户管理
用户管理入口 Jenkins首页有一个用户,但是只能从那查看用户列表和信息,管理用户的入口在Jenkins->系统管理->管理用户 新建用户 在管理用户左侧有一个新增用户,点击后按照表单填 ...