javasocket-java 中TCP自定义数据包

问题描述

java 中TCP自定义数据包

比如我现在要定义包头,包头给了三个参数,用户名,密码,长度,时间,分别是4,12,2,4个字节,时间就是 从(00:00:00), January 1, 1970到现在消逝了多少秒(可由time函数获取),这个包头怎么定义

解决方案

将包头定义为一个字节数组即可,该字节数组的长度为4+12+2+4,传输的时候候将用户名、密码、长度、时间等转换成为对应的字节,放入定义的字节数组中,解析包的时候则将对应长度的字节流转换成相应的类型,比如字符串,时间,数字等等

伪代码如下:

byte[] arr=new byte[22];

String name="aaaa";
String pwd="bbbbb";

int len=10;
datetime=.....

byte[] nameArr=name的字节数组,
byte[] pwdArr=pwd的字节数组。
.....

将上面的字节数组加入到arr中进行传输,
接收端按照定义好的顺序取出对应的字节,转换成字符串,数字,或者时间。

解决方案二:

求大神指导。非常感谢大神指导,急求

解决方案三:

谢谢你,非常感谢你的帮助

解决方案四:

也可以定一个普通结构,由第三方库进行序列化和反序列化的操作。(比如xml或者json)

时间: 2025-01-21 04:39:04

javasocket-java 中TCP自定义数据包的相关文章

java输出流与响应数据包之间有什么关系?

问题描述 java输出流与响应数据包之间有什么关系? 大家好,作为一名新手提个问题,希望大家多多帮助! 比如:我在浏览器,发送一个http请求,后台java程序接收后,通过输出流 out.write(xxx)输出信息, 那 这个时候 响应信息是直接通过输出流传送到浏览器: 还是流把信息写到响应报中,再把响应报传送到浏览器呢? 解决方案 希望大哥大姐们,提供下正解!谢谢 解决方案二: 不造,自我感觉是后者.坐等大神解答

Linux内核bug引起Mesos、Kubernetes、Docker的TCP/IP数据包失效

本文讲的是Linux内核bug引起Mesos.Kubernetes.Docker的TCP/IP数据包失效,[编者的话]最近发现Linux内核bug,会造成使用veth设备进行路由的容器(例如Docker on IPv6.Kubernetes.Google Container Engine和Mesos)不检查TCP校验码(checksum),这会造成应用在某些场合下,例如坏的网络设备,接收错误数据.这个bug可以在三年前任何一个测试过的内核版本中发现.补丁已经被整合进核心代码,正在回迁入3.14之

java json 数据转换-JAVA中如何将数据组装为json树状结构的数据

问题描述 JAVA中如何将数据组装为json树状结构的数据 我从数据库中查出的数据保存到一个集合List中,集合中是存的区域类Area.区域类的字段和数据库中结果的字段一样.图1中是我的数据库查询结果,想转行为json格式的树状结构.例如省-市-县这样的结构.就是图2的效果 图1: 图2: 弄了一天了还没出现,我太菜了.请大家帮帮忙 解决方案 要么你就自己纯拼字符串,要么就直接用fastjson这类json工具类直接转.只要类结构和json结构能对应,可以直接转就可以了. 解决方案二: 你定义一

多线程-Java中处理大数据的问题

问题描述 Java中处理大数据的问题 在做一个信息提取的项目,需要提取几万份文件中的特定数据(每份文件大概是两百页左右的PDF),现在已经可以提取出其中一份文件中的特定数据了.问:现在要怎样提取几万份文件中的特定数据?用的是Java,据说要用多线程,不知道是不是,如果是的话,具体要怎么用? 解决方案 开线程可能会造成内存溢出的问题,这样的任务应该交给多台服务器多个线程来处理,这样又快又安全. 解决方案二: java 大数据处理java大数据处理java 大数据处理

c++-关于java中Map添加数据的问题

问题描述 关于java中Map添加数据的问题 我定义了Map revmap=new HashMap(); 但是当我向revmap中添加数据时总提示错误. revmap.put(num_vertices, p); 其中num_vertices是int型,p是Point2d型,错误提示让把num_vertices改为integer型是怎么回事? 补充内容: 其实我是看到了一个C++程序,需要把它该写为java程序,C++代码所用的数据结构如下: std::map<int, int> Map; st

大家好,请问一下java中的自定义标签库允不允许这种情况(没有属性值的情况)存在&amp;amp;lt;vfd:button id=&amp;amp;quot;aa&amp;amp;quot; URL&amp;amp;gt;&amp;amp;lt;/vfd:button&amp;amp;gt;

问题描述 大家好,请问一下java中的自定义标签库允不允许这种情况(没有属性值的情况)存在><vfd:buttonid="ID59789BF4C54140B7BEAFC83E0226D2BB"class="tbbutton"Paramater=""ErrorMsg="数据类型错误或未填写完整!"DialogWidth="800"DialogTop="20"DialogLeft

C#中如何通过Socket或TCP发送数据包?

问题描述 如上两张图所示,一个是对方要求客户端发数据包的要求,涉及到长度.平台码.业务码以及数据体,因为格式显示需要short类型,但是平台业务码又是六位的数字,在此处一转换就报错,另外,数据体是一串json格式的字符串,通过转换之后,写入到这个固定长度的数据包中时,则直接报溢出错误,该如何弄?又或者普遍发数据包的形式应该是什么样的? 解决方案 解决方案二:自己顶顶顶顶解决方案三:我没看出平台ID为何是6位数字解决方案四:人傻没办法,你代码截个卵图,想改都没得改1.你定义一个byte[]send

TCP/IP 数据包处理路径,了解WINDOWS防火墙,更好的保护系统

简介 随着 Microsoft Windows XP Service Pack 2 和 Windows Server 2003 Service Pack 1 新增了 Windows 防火墙,以及 Internet 协议安全 (IPsec) 在公司 Intranet 中日益广泛的应用,信息技术 (IT) 专业人士需要了解 TCP/IP 协议及 Windows 中的相关组件处理单播 Internet 协议 (IP) 数据包的具体方式.有关 IP 数据包处理路径的详细知识,可以让您更轻松地掌握配置数据

think in java 中的一个引入包的问题??求解答classPath设置!!

问题描述 就是在第三章操作符时作者写了个简单的输入方法print()代替System.out.println(),不过要引入其自己创建的包.怎么引入那个包的,那个包我下载了.解压后是net.mindview.*,我是把包放在了D:think文件夹下面的,即:D:thinknetmindview.*,我的在环境变量的classpath中添加了对包net的引用可是编译通不过,还是报错找不到软件包net.mindview.util不存在.我的目前classpath变量是:.;C:ProgramFile