socket通讯问题

萧狼 2011-04-22 03:06:35
大家好,我在做socket通讯时,接收shrot类型产生乱码,开发环境是delphi。如果把客户端改用java则没发现问题,请问是不是short的问题啊?可是我在其他地方用到short类型没出错呀。
传输的数据块如下:
RePackPV=packed record
packH:packHead;//也是记录体
plen:SHORT;//问题就出在这里,定义成integer后,delphi客户端和服务端能正常通讯,改成short只能和java客户端通讯
pv:array[0..100] of PVvale;
end;

请帮忙分析分析
...全文
119 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
弘石 2011-04-26
  • 打赏
  • 举报
回复
我说的高低位的问题,是由于delphi和java的处理可能不一致导致的
haitao 2011-04-25
  • 打赏
  • 举报
回复
字节对齐的问题的?
萧狼 2011-04-25
  • 打赏
  • 举报
回复
我在同一台机器上运行,并且客户端和服务端采用同一个开发环境,不存在高地位的问题吧。
我后来使用动态数组就可以了,还是很奇怪。谁能告诉我这是为什么啊
萧狼 2011-04-25
  • 打赏
  • 举报
回复
sz_haitao(解释型delphi?notes)你说的也许是对的。我后来采用动态数组(把静态数组换掉)就不存在short的问题,这个有点奇怪哦
弘石 2011-04-23
  • 打赏
  • 举报
回复
注意传递数据的字节高低位是否一致
haitao 2011-04-23
  • 打赏
  • 举报
回复
搜一下:大端 小端
f12167a 2011-04-23
  • 打赏
  • 举报
回复
可能是哪个细节写错了,short应该不会读错的。断点调试看看
萧狼 2011-04-22
  • 打赏
  • 举报
回复
我客户端的pvlen是这么写的

packPV.pvlen:=ShortInt (StrToInt(Edit4.text));

请问会有问题吗
goodhj 2011-04-22
  • 打赏
  • 举报
回复
是不是你客户端赋值的时候自动提升成了Integer;

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧