首页 新闻 会员 周边

我做了一个sl的聊天室,怎么别的客户端不能主动收消息

0
悬赏园豆:10 [已关闭问题]

我做了一个sl的socket聊天室 客户端发一个消息到服务器 然后服务器端马上转发给所有客户端   现在的问题是A客户端发消息时 B客户端不会主动收到消息  而要当B客户端发消息时才收到刚才A客户端发的消息

部分代码:

private void sandMsg(string msg)
        {
            byte[] bytes = Encoding.UTF8.GetBytes(msg);
            SocketAsyncEventArgs args = new SocketAsyncEventArgs();
            args.RemoteEndPoint = socket.RemoteEndPoint;

            //设置Socket参数的缓冲区参数,将我们的字节数组设置为Socket的缓冲区。
            args.SetBuffer(bytes, 0, bytes.Length);
            args.Completed += new EventHandler<SocketAsyncEventArgs>(SendComplete);

            //发送数据
            socket.SendAsync(args);
        }

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:37
提问于:2010-02-03 13:01
< >
分享
其他回答(4)
0

B客户端得不停地访问服务器端,这样才可以及时地接受信息。qq的后台貌似也是这么干的。

Simon.Jiang | 园豆:185 (初学一级) | 2010-02-03 13:33
0

想要B客户端收到服务器的数据,B 必须先连接到 服务器。 你的链接有问题。

AirSend | 园豆:522 (小虾三级) | 2010-02-03 13:37
0

你的支持双工通信吗

B端要访问服务器,那样可能太费资源,那就在B端开个端口,监听消息,监听服务器是否有发往这个端口的消息,如果A给你消息的话,服务器应该往B的端口发消息,告诉B,有A给你发消息,然后B就可以接收消息了

Virus-BeautyCode | 园豆:1619 (小虾三级) | 2010-02-03 16:17
0

我觉得至少要建立一个Socket,不然怎么接收呢?

陳修君 | 园豆:480 (菜鸟二级) | 2010-02-03 16:30
0

socketasynceventargs

血海枫 | 园豆:226 (菜鸟二级) | 2012-05-28 11:57

C#游戏服务器MMRPG交流群:136485198

支持(0) 反对(0) 血海枫 | 园豆:226 (菜鸟二级) | 2012-05-28 11:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册