【计算机网络 16】一个基于TCP协议的Socket通信实例

一、前言

一般接口对接多以http/https或webservice的方式,socket方式的对接比较少并且会有一些难度。正好前段时间完成了一个socket的接口的对接需求,现将实现的思路做一个整理。

二、需求概述

1、需要提供一个socket服务端,实时接收三方传递过来的数据

2、实时报文规范说明

3、通讯及接口格式说明

通讯方式:

通讯采用 TCP 协议, SOCKET 同步短连接方式。

报文结构:

报文为不定长报文,以定长报文头+不定长报文体的方式

报文基本结构如下图所示:

6位交易报文长度+交易报文。其中 6 位交易报文长度以 ASCII 码字符串方式表示(6 个字节),右对齐,左补 0,不包括自身的长度,表示的是报文体的长度。如“000036fbced3fe-7025-4b5c-9cef-2421cd981f39”, 000036 为长度,“fbced3fe-7025-4b5c-9cef-2421cd981f39”为报文内容。

报文结构符合 XML 标准的报文格式,报文以无 BOM 格式的 GBK 编码。报文根节点为 Transaction节点。除非报文里有特殊说明,报文定义的字段都是 Transaction 节点的子节点。报文格式参考下节示例。

此文的重点在于说明,用socket传递数据时,报文的基本机构通常包含【定长的报文头+不定长的报文体】

4、报文示例

请求:

00041029greerg+4741414141test02018-06-1516:15:00

响应:

0006831OK0c2c002f-ccc6-4c7b-86e1-c7871b1c98b31Message enqueued for sendingSMS-AFFS-000000100+47419155906y06b02hdo001

往期精彩内容:

Java知识体系总结(2021版)

Java多线程基础知识总结(绝对经典)

超详细的springBoot学习笔记

常见数据结构与算法整理总结

Java设计模式:23种设计模式全面解析(超级详细)

Java面试题总结(附答案)

转载自:https://www.sohu.com/a/259845146_575744

你可能感兴趣的:(计算机网络)