关闭

客户-服务器通信问题(急,子藤大哥,救命啊!)

38人阅读 评论(0) 收藏 举报
我的服务器向客户发数据,为什么有时候客户可以收到,而有时候客户却异常退出?我跟了一下断点,问题在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
{
TInt AllSize ;
TInt Count ;
TInt DenyCount ;
TInt    FlowOver ;      };
求达人解惑啊,都困扰我好久了,子藤大哥,救命啊。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1152次
    • 积分:174
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档