您的位置:程序门 -> vb -> 网络编程



我需要实现c/s连接,至少有240多个客户端,如果他们同时向服务器发送消息


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


我需要实现c/s连接,至少有240多个客户端,如果他们同时向服务器发送消息[已结贴,结贴人:liuphil]
发表于:2007-04-16 14:38:30 楼主
我需要实现c/s连接,至少有240多个客户端,如果他们同时向服务器发送消息,winsock在执行第一个getdata时会把剩下的数据都加载如缓冲区(数据流量可能很大,每次传的数据量不大)而且我的客户端是每秒发送100个数据值到s端,这样就会有2400个数据同时到达s端,
    我想请问      
    1、就是现在我的s端会不会处理很慢,在这种情况下(因为我还希望实时保存),是不是8k存满以后,以后发送过来的数据都会丢失?有没有什么方法知道缓冲区是否已满?有没有更好的办法解决这样的问题,
    2、我采用winsock数组,进行一对一连接,那么在getdata时会不会把别的winsock缓冲区内的数据给接受过来???每一个winsock是不是有独立缓冲区?
    3、我准备把每个客户端发过来的数据(二进制)都附加一个标志位和结束位,方便我的数组接收,这样会不会发生混乱?
   
因为我的客户端都是单片机,我不希望单片机处理数据,都让其在我的s端处理。

有哪位大侠以前做过类似的例子,能不能留下email,msn,qq,帮帮我,,谢谢啊

email:liupeishi@hotmail.com
msn:liupeishi@hotmail.com
qq:114389983

那位有例子能不能发一个到我的邮箱中,谢谢,,我现在孬了,,,,,
发表于:2007-04-16 14:38:541楼 得分:0
对不起大家了,这只是我能给的最高分了``````
发表于:2007-04-16 15:43:572楼 得分:5
不仅会慢那么简单哦.......可能会“没有响应”
这种数据量建议你用vb.net来做,用多线程处理
发表于:2007-04-16 16:01:173楼 得分:0
我也是没办法,这个系统别的都完成得差不多了,   现在到了这儿,要换平台也太烦心了,,,
发表于:2007-04-16 16:07:054楼 得分:5
感觉用vb中很危险,vb在性能和效率上都比较弱,感觉用vc封装通讯部分的dll,提供接口供vb调用比较好.
发表于:2007-04-16 16:10:015楼 得分:0
完了,完了,,,看来今天晚上我要托梦给观音姐姐,问问她有无办法了,,,老天可千万不要放弃我这么一个优秀的程序员啊~~~~~~
发表于:2007-04-16 18:18:126楼 得分:65
你说的情况,在服务器端并不少见。应该说有一定的硬件性能要求,相对于网络的低速而言,多线程并不一定会比单线程有明显的速度优势,相反资源占用会变大,调控也会变得困难,多线程时用户响应会及时一些,但这在服务端似乎并不重要。

你的几个问题,说说我的观点:

1、数据到达后,及时getdata,不要peekdata,缓冲区应该不会不够的^_^当然这也只是一个说说而已。其实winsock控件在产生dataarrival事件时,端口缓冲区实际上已清空,它会为你管理好一切的,不用你操心。ws2_32.dll是用消息通知数据到达的,winsock控件先取出数据放入自己的缓冲区,再产生dataarrival事件,它自己的缓冲区理论上只受限于内存。

2、每一个winsock是独立端口、独立缓冲区,getdata肯定不会把别的winsock缓冲区内的数据给接受过来,不然winsock数组就根本没用了,此点绝不用担心;前面说过,同样winsock控件会为你管理好一切的

3、客户端发过来的数据有一定格式,是很正常事情,你自已别把index弄错了,就没问题;

服务器端的处理能力,一方面是硬件性能,一方面是代码效率,问再多也没有,只有自己试试才知道能不能胜任。
发表于:2007-04-16 21:39:427楼 得分:10
小吉说的有道理,写个测试程序,试试就知道了。
发表于:2007-04-16 21:44:238楼 得分:15
没有测试过   测试要自己做的   晚上可以交流下
我的qq短消息   给你
不过   用.net作肯定没有问题
顺便问一下   tcp   or   udp   每一个包多大   是什么类型数据
发表于:2007-04-16 21:50:129楼 得分:0
.....................
发表于:2007-04-17 11:51:0310楼 得分:0
恩,要是每个winsock都有一个单独的缓冲区,我想事情可能要简单得多吧,,我只测了一个c端,就是发现有点慢,,,可能是我机子配置不行吧,,先弄下看看,,以后多帮忙啊,我在测试的时候犯了一个逻辑错误,,我用记时器模仿240个c端,又只用了一个winsock,看来我的原因是出在这儿,,容我再试下,,还是先谢谢了啊,,,,


不行再问哦,,,
发表于:2007-04-17 11:53:4411楼 得分:0
小吉,谢谢你了,,我主要也是弄不清楚winsock的性质,,

影子,我没收到你的qq消息呢,我姓刘,名沛师你留下qq啊,,,


快速检索

最新资讯
热门点击