当代码完全正确的情况下:
1、当网络速度比较慢或极慢时(但还不至于断开),服务器端是否经常无法接受新的连接请求?
2、服务器端是否占用大量内存,而且网络速快时发送速度极慢?
3、客户端是否经常丢数据包?
我想确定一下是否vb的sock控件有什么先天不足?

解决方案 »

  1.   

    要看多到什么程度呢...服务器没问题,但是人多了丢包掉线的话就要分流啰.服务器不吃资源不能算是服务器.不然为啥服务器电脑的内存动不动就用G来做单位,双CPU,硬盘阵列呢?客户端掉包要看当前服务器的情况和客户端到服务器之间的网络状态.Ping一下就清楚啦~winsock控件也是调用系统的API来完成网络操作的.可能在封装上有很多人觉得束缚太多.有什么不足我现在未能发现...
      

  2.   

    我也遇到这个问题
    比如我建立一个聊天服务器程序
    同时两人以上在线时
    要做到当一个人说话,让所有人都能看见的话就要对每个客户端发送一个包含该数据的包
    我用for i=0 to client.count-1
        client(i).senddata s  's 为 byte 数组,包含聊天数据
    next 可是只有最后一个客户端能收到数据,别的客户端的数据都在发送缓冲区里卡着
    当最后一个客户端下线,之前的用户才能收到信息
    我必须把程序改成for i=0 to client.count-1
        client(i).senddata s  's 为 byte 数组,包含聊天数据
        doevents
    next 
    才能保证每个客户端都收到信息单独发送数据没有问题,但如果使用循环快速调用多个 Winsock 控件的 senddata 的时候,就会出现数据卡在缓冲区的情况。但很奇快,同样的程序在有些机器上不会出问题,而有些会,还有些有时会有时不会...
    郁闷,不知道是什么导致的。