还是关于那个UDP接收结构体数据包的问题(20分)

  • 主题发起人 主题发起人 anndy1999
  • 开始时间 开始时间
A

anndy1999

Unregistered / Unconfirmed
GUEST, unregistred user!
这是发送端发送的UDP结构体包(c++的),
typedef unsigned char byte;
typedef struct STimeVal
{
int tv_sec;
int tv_usec;
}TimeVal;
typedef struct data_format
{
byte type_id;
short code;
int height;
byte sys_id;
int obj_type;
TimeVal time_stamp;
char info[256];
byte other_flag;
static struct data_format* ntoh(char* buffer);
char* hton();
}
假如在delphi中定义一个相应的结构体,如DBDATA,
type
DBDATA = record
type_id :string[2];
code:integer;
height:integer;
sys_id:string[5];
obj_type:integer;
time_stamp:tdatetime;
info:string[256];
other_flag:string[8];
后面两项如何写呢?
end;
在delphi中怎样接收呢?这个DBDATA有些字段怎样给类型呢?
 
还是没有肯帮帮偶吗???急啊!!!!!!!!!!!!!!
 
data_format = packed record
type_id :Byte;
code:Smallint;
height:integer;
sys_id:BYTE;
obj_type:Integer;
time_stamp:TTimeStamp;
info:array[256] of char;
other_flag:Byte;
后面两个是函数指针,传送过来没什么意义,如果要定义成integer或Pointer
end;
 
知道原因了,原来是高低字节序的问题,发送方是64位机,而我的接收方是32位机。我转换一下就搞定了。
 
后退
顶部