首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Symbian >

客户-服务器通信有关问题(急子藤大哥,)

2012-02-15 
客户-服务器通信问题(急,子藤大哥,救命啊!)我的服务器向客户发数据,为什么有时候客户可以收到,而有时候客

客户-服务器通信问题(急,子藤大哥,救命啊!)
我的服务器向客户发数据,为什么有时候客户可以收到,而有时候客户却异常退出?我跟了一下断点,问题在iMessage.WriteL这里,异常退出代码为-38,错误的描述符,晕了。
我的疑问是既然问题出在iMessage.WriteL这里,但是为什么不是每次都退出,而且是随机的,(发数据)有时候时间长,有时候时间短。  
下面是客户-服务器通信的部份代码:
//CLIENT:
void   RServerSession::RequestStateData(   TStateMsg&   aStateMsg,   TRequestStatus&   aStatus   )
{
TAny*   messageParameters[KMaxMessageArguments];

TPckg <TStateMsg>   StateMsg(   aStateMsg   );
messageParameters[0]   =   (TAny*)&StateMsg;  
        SendReceive(   ECyberWallServRequstState,   messageParameters,   aStatus   );

}
//SERVER:
void   CCyberWallServerSession::SendStateMsgToClient()
{

if(iWaitingForTick)
{
iWaitingForTick   =   EFalse;


iServer.GetStateMsg(iMyMsg);

TPckg <TStateMsg>   hand_mymsg(iMyMsg);

TRAPD(err,   iMessage.WriteL(iMessage.Ptr0(),hand_mymsg));
if(err)
{
PanicClient(EBadDescriptor);

}
     
iMessage.Complete(ECyberWallServRequestComplete);
}
}
问题就出在iMessage.WriteL(iMessage.Ptr0(),hand_mymsg)这句,我跟断点,异常退出代码为-38---错误的描述符,不知道怎么回事。如果是错误的描述符,为什么一开始不出问题,而是一段时间后。
//TStateMsg
struct   TStateMsg
{
TIntAllSize   ;
TIntCount   ;
TIntDenyCount   ;
TInt         FlowOver   ;             };
求达人解惑啊,都困扰我好久了,子藤大哥,救命啊。

[解决办法]
TPtr8 ptr(reinterpret_cast <TUint8*> (&time), sizeof(time), sizeof(time));
TRAPD(leave, iMessage.WriteL(iMessage.Ptr0(), ptr));用这种方式试试.

热点排行