java服务端 socke接收图片,c++java多客户端与服务端,传过来时有包头文件,怎么去除包头文件,只保存图片数据在文件夹

今天这个项目需要c服务端与javajava多客戶端与服务端进行socket通信

有以下几点要注意的地方:

1.大端与小端的转换。具体可以参看这个博客

我的java多客户端与服务端是用c写的属于小端模式,而TCP和java都是大端模式所以服务器端在发送int  WORD  或者是double等数据类型的时候必须先将小端转换成大端模式,而在接受到数据以后必须将这些类型再重新转换成小端模式具体转换可以看下面这个列表。

2.结构体对齐具体可以参看这个博客


我遇到的问题是这样的。当我在发送數据的时候我定义了成员Type = 0x 41通过抓包工具发现Type发送过去的数据是0x 41 cc

导致java端接收的时候出错。那么这里为什么会出现一个多出来的cc 呢

这是结構体对齐所导致的。具体大家可以看上面那个链接

先让我们看四个重要的基本概念:

1.数据类型自身的对齐值:对于char型数据,其自身对齐徝为1对于short型为2,对于int,float,double类型其自身对齐值为4,单位字节2.结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。3.指定对齐值:#pragma pack (value)时的指定对齐值value4.数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐值中小的那个值。

解决的办法是添加下面这句:

理由就昰上面的4条重要规则

《计算机网络原理》实验讲义,计算机组成原理实验,计算机原理实验,实验讲义,统计学原理讲义,计算机网络实验报告,计算机网络原理,计算机网络实验,计算机网络综合实验,计算機网络抓包实验

我要回帖

更多关于 java多客户端与服务端 的文章

 

随机推荐