我是用单线程异步接收数据来进行socket通信的。从client端能够以100条/s的速度发送消息,并且也能够发送到server端,但在处理server端返回的response时只能处理20条/s,不知道这是什么原因所致,我是用单线程来处理发送和接收过程的。
现在碰到这个问题,也不知道什么原因,我愿用高分获得各位的帮助,多谢多谢拉!
另,同样有这么一个系统,用单线程完全可以同时处理发送和接收过程!

解决方案 »

  1.   

    只要计算不是很复杂,100条/s肯定是没有问题的
    我以前也做过类似的东东,只要信息不丢,server端处理就没有问题
    不知道楼主问题出在哪里,关键代码贴上来看看
      

  2.   

    我做的是client,没有很复杂的计算,只是需要处理server返回的response,然后做一个统计工作,但不知道为什么对server返回的消息每次都是20条/s不多也不少,不知道问题出在哪里?!另:mjk()能给详细一点说明么?我就是用的是异步方式,看了一些资料,但好像也没有看出特别之处。
      

  3.   

    100条不算什么啊!要是cpu这点都处理不过来就完蛋了
      

  4.   

    To wwwllg(wwwllg):
    能详细一点说吗?你的意思是说在我接收端丢失数据?
    发送端几乎没有数据丢失,在server端我能通过统计数据看到。
      

  5.   

    不能,要看端口当时是否正为pending状态。但根据你描述的现象,我觉得是你的程序处理方式上有问题。
      

  6.   

    To wwwllg(wwwllg):
    能详细一点说吗?我现在基本功能都实现了,就这个问题一直解决不了,我也是束手无策,希望得到你的帮助,如果分不够可以再加!
    多谢多谢了!

      

  7.   

    我刚才做了一个测试,发现性能之所以只能达到20条/s,是因为每秒我只能收到20个左右的窗体消息(FD_READ)。
    对于这个问题我该怎么处理呢?
    一直都没有人回答我啊!
      

  8.   

    楼主是用的udp还是tcp?如果udp不行,换tcp试试看呢?
      

  9.   

    多找找自己的问题。
    winsock存在这么多年,如果这点性能达不到,不可能。