java socket报文封装_java socket报文通信(二)报文的封装

昨天我们谈了怎么建立socket通信的服务端和客户端,今天我们就来谈一谈怎么封装报文。

什么是报文这里我就不在阐述了,不清楚的朋友可以自己去查资料。我们今天要谈的报文主要友以下几个部分组成:

3位同步校验位+8位报文长度+报文头+报文体+32位MD5校验位

基本格式如下:

0X110X120X1300000232<?xml version="1.0" encoding="GBK"?>02042014122314122301000815217010001张三B251AB76B11114DB176023A0AA27A524

说明:

前面的0X110X120X13是3位16进制的同部位,这里为了大家理解,所以就以字符的形式谢出来了。00000232是报文长度。<?xml version="1.0" encoding="GBK"?>02042014122314122301000815217010001是报文头。即每个报文都包含的信息。张三是报文体。B251AB76B11114DB176023A0AA27A524是加密数据。

关于如何将对象转换为xml格式的报文我将在下一篇写,这里主要是给大家如何将如上的这些字符串转化为字节以及如何发送和接收报文。

1.建立报文的对象

48304ba5e6f9fe08f3fa1abda7d326ab.png

public class SocketPacket {

private String bodyLen;

private String body;

private String syncStr;

private String md5;

public String getBodyLen() {

return bodyLen;

}

public String getBody() {

return body;

}

public String getSyncStr() {

return syncStr;

}

public String getMd5() {

return md5;

}

public void setBodyLen(String bodyLen) {

this.bodyLen = bodyLen;

}

public void setBody(String body) {

this.body = body;

}

public void setSyncStr(String syncStr) {

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Java Socket封装HTTP请求报文来实现GET一个文本文件的功能。以下是一个简单的示例代码: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class HttpClient { public static void main(String[] args) { try { // 创建Socket对象 Socket socket = new Socket("example.com", 80); // 创建输入输出流 PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 发送HTTP GET请求 out.println("GET /path/to/file.txt HTTP/1.1"); out.println("Host: example.com"); out.println("Connection: close"); out.println(); // 接收并打印响应 String line; while ((line = in.readLine()) != null) { System.out.println(line); } // 关闭流和Socket连接 out.close(); in.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上述代码中,你需要将"example.com"替换为目标服务器的主机名或IP地址,将"/path/to/file.txt"替换为目标文件的路径。发送的HTTP GET请求报文中包含了请求行、请求头和空行,其中请求行指定了请求方法(GET)和目标文件路径,请求头中指定了主机名和连接关闭。随后,通过读取输入流获取响应并打印输出。最后,关闭流和Socket连接。 请注意,这只是一个简单的示例,实际上,要处理各种HTTP响应状态码、处理响应体、错误处理等还需要更多的代码。如果你需要更复杂的功能,建议使用现有的HTTP客户端库,如Apache HttpClient或OkHttp。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值