找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5503|回复: 5

还是Proactor服务器出现的问题...

[复制链接]
发表于 2008-6-30 11:38:00 | 显示全部楼层 |阅读模式
180个客户端同时连接服务器, 循环发送一条信息...服务器接收到消息后...循环发送给所有的客户端...

就是说: 服务器做到 180*180个写操作时没有问题...

但是 当240个同时连接时,服务器就挂了...

Proactor下...

bool        CUser::Send( void* pBuf, int nLen )
{
        if ( !m_bValid.value() )//连接已经失效,不可以再发送
        {
                return false;
        }

        ACE_Message_Block* mb = new ACE_Message_Block( nLen );//这里挂掉了...
        if ( 0 == mb )
        {
                delete this;
                return false;
        }

        ACE_OS::memcpy( mb->wr_ptr(), pBuf, nLen );
        mb->wr_ptr( nLen );

        if ( -1 == put(mb) )
        {
                delete this;
                return false;
        }

        return true;
}

这是跟机器性能有关系...还是我的代码还不够健壮?

应该有什么解决的办法的吧?
发表于 2008-6-30 12:57:51 | 显示全部楼层
都有可能。
先查查自己的代码吧。
 楼主| 发表于 2008-6-30 13:02:29 | 显示全部楼层
但是在180个连接的时候没有问题...说明逻辑上没有问题吧???
发表于 2008-6-30 16:27:58 | 显示全部楼层
不一定,也许是资源的问题。
发表于 2008-7-8 13:54:33 | 显示全部楼层
内存不足?
发表于 2008-7-8 14:07:22 | 显示全部楼层
跟踪一下代码,或者用工具查一下
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 07:33 , Processed in 0.014531 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表