服务端接收客户机登陆后,要把信息发到每个客户机上
当1,2个客户机登陆都没有问题,但是到了第三个登陆时,就出现问题了
因为我发送用户信息都是遍历式的,第三个客户端就少了一个用户信息,这是什么原因?
为什么前二个客户连接发送都没问题,为什么到了第三个就少了一个信息
for (list_point3=gSockDataVec.begin();list_point3!=gSockDataVec.end();list_point3++)
{
if(list_point3!=NULL )
{
if(StrCmp((*list_point3)->username,(*itrSock)->username)!=0)
{
client_protol.ChatAction=CAction_N_USER;
strcpy(client_protol.Action_Protocols.N_username,(*list_point3)->username);
SendMsg(&(char&)client_protol,pSocket,pKey);
}
client_protol.ChatAction=CAction_Join_USER;
strcpy(client_protol.Action_Protocols.Join_username,(*itrSock)->username);
SendMsg(&(char&)client_protol,(*list_point3)->Socket,pKey);
}
}
当1,2个客户机登陆都没有问题,但是到了第三个登陆时,就出现问题了
因为我发送用户信息都是遍历式的,第三个客户端就少了一个用户信息,这是什么原因?
为什么前二个客户连接发送都没问题,为什么到了第三个就少了一个信息
for (list_point3=gSockDataVec.begin();list_point3!=gSockDataVec.end();list_point3++)
{
if(list_point3!=NULL )
{
if(StrCmp((*list_point3)->username,(*itrSock)->username)!=0)
{
client_protol.ChatAction=CAction_N_USER;
strcpy(client_protol.Action_Protocols.N_username,(*list_point3)->username);
SendMsg(&(char&)client_protol,pSocket,pKey);
}
client_protol.ChatAction=CAction_Join_USER;
strcpy(client_protol.Action_Protocols.Join_username,(*itrSock)->username);
SendMsg(&(char&)client_protol,(*list_point3)->Socket,pKey);
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货