作者ireullin (raison detre)
看板C_Sharp
标题[问题] c# socket 一问
时间Mon Sep 8 21:14:35 2008
请问各位高手
小弟我使用c#写了一个client程式
使用socket去跟c++ 的server作沟通
沟通的内容是一个struct
c# 中 struct的格式
[Serializable()]
public struct LOGIN_PERMISSION_DATA
{
public short version;
public byte[18] username;
public byte[15] password;
public int idx;
public uint checkkey;
public byte client_id;
public byte permission;
}
c++中 struct的格式
typedef struct tagLoginPermission
{
short version;
char username[18];
char password[15];
int idx;
unsigned int checkkey;
iUInt8 client_id;
iUInt8 permission;
} LOGIN_PERMISSION_DATA;
可是我在c++始终无法解译我使用socket send过去的data
我将这个struct 在c# 转为 byte[] 的时候 长度是317
可是我使用c++写一个简单的范例
我在里头使用 sizeof(LOGIN_PERMISSION_DATA) 的时候 大小只有 48(WORD)
请问为何会如此呢
我是否有哪里疏忽掉了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.220.110.100
1F:推 megaman1206:难道是指标? 09/08 21:53
2F:推 tomex:C#转struct至win32,需要作很多size属性宣告,不是那麽简单 09/10 13:52
3F:推 tomex:网路上有文章在讲c# to c++结构对比上的宣告方式,去查看看 09/10 13:52