我的目的是,把一个结构,发送给另一端。Indy 9的代码如下:
定义:
TUserInfo = record
USERID: string[20]; //用户ID
DESCRIPT: string[30]; //用户描述
PASSWORD: string[20]; //Passwd
SEX: string[2]; //性别 男 女
PHS: string[40]; //小灵通
MOBILE_TELEPHONE: string[40]; //移动电话
TELEPHONE: string[50]; //固定电话
IP_ADDRESS: string[20]; //IP地址(登录更新)
COLUMN1: string[50]; //备用1
END;
函数中的代码:
//调用专用函数进行登录判断
t_tRetval.iRetval := OrderToLogin(t_IXMLDoc, t_oUserInfo, t_strErrMsg);
t_tRetval.strErrMsg := t_strErrMsg;
t_ActClient.UserID := t_oUserInfo.USERID;
//把用户信息返回
AThread.Connection.WriteBuffer(t_oUserInfo, SizeOf(t_oUserInfo), true);
客户端读取:
//系统会返回数据是否通过
IdTCPClient1.ReadBuffer(m_oUserInfo, SizeOf(m_oUserInfo));
各位,Indy10中应该如何写呢?请指教!
6 个解决方案
#1
晕倒,没有人知道吗?帮顶一下好吗?
#2
有任吗?
#3
没用过Indy10,应该差不多吧,Write是怎么声明的呢?
#4
我没用过indy9,只用了indy10的一点儿
建议你看看《indy in depth》,这本电子书应该有讲的,网上可以搜到的
建议你看看《indy in depth》,这本电子书应该有讲的,网上可以搜到的
#5
不是已经回答过了吗??
>>在10中没有这个方法,只有一个Write,
应该是该为
IdTCPClient1.SendCmd();
IdTCPClient1.GetResponse();
IdTCPServer1.Bindings[1].Send()
这个,indy 还提供了个参数将 string 转为 tbytes 的
必须将记录体的数据转换成TIdBytes
试一下这个
function RawToBytes(const AValue; const ASize: Integer): TIdBytes;
begin
SetLength(Result, ASize);
Move(AValue, Result[0], ASize);
end;
>>在10中没有这个方法,只有一个Write,
应该是该为
IdTCPClient1.SendCmd();
IdTCPClient1.GetResponse();
IdTCPServer1.Bindings[1].Send()
这个,indy 还提供了个参数将 string 转为 tbytes 的
必须将记录体的数据转换成TIdBytes
试一下这个
function RawToBytes(const AValue; const ASize: Integer): TIdBytes;
begin
SetLength(Result, ASize);
Move(AValue, Result[0], ASize);
end;
#6
以后可能用得到,关注一下。
#1
晕倒,没有人知道吗?帮顶一下好吗?
#2
有任吗?
#3
没用过Indy10,应该差不多吧,Write是怎么声明的呢?
#4
我没用过indy9,只用了indy10的一点儿
建议你看看《indy in depth》,这本电子书应该有讲的,网上可以搜到的
建议你看看《indy in depth》,这本电子书应该有讲的,网上可以搜到的
#5
不是已经回答过了吗??
>>在10中没有这个方法,只有一个Write,
应该是该为
IdTCPClient1.SendCmd();
IdTCPClient1.GetResponse();
IdTCPServer1.Bindings[1].Send()
这个,indy 还提供了个参数将 string 转为 tbytes 的
必须将记录体的数据转换成TIdBytes
试一下这个
function RawToBytes(const AValue; const ASize: Integer): TIdBytes;
begin
SetLength(Result, ASize);
Move(AValue, Result[0], ASize);
end;
>>在10中没有这个方法,只有一个Write,
应该是该为
IdTCPClient1.SendCmd();
IdTCPClient1.GetResponse();
IdTCPServer1.Bindings[1].Send()
这个,indy 还提供了个参数将 string 转为 tbytes 的
必须将记录体的数据转换成TIdBytes
试一下这个
function RawToBytes(const AValue; const ASize: Integer): TIdBytes;
begin
SetLength(Result, ASize);
Move(AValue, Result[0], ASize);
end;
#6
以后可能用得到,关注一下。