我用完成端口模式 出现以下情况:
1.服务器数据有发完,客户端没收完数据 
2.服务器和客户端的接收数据 在中途突然中断
3.客户端接收的数据 出现乱包情况 TCP的跟踪又没跟踪出什么来 
谁有碰到过类似的问题  提下建议 帮帮忙

解决方案 »

  1.   

    1.服务器数据有发完,客户端没收完数据 
    可以你投递发送的包本为就没有那么长,也有可能是你没有接收完全,还在在接收.2.服务器和客户端的接收数据 在中途突然中断 
    看一下你服务端和客户端是在什么情况下关了连接的,可能是你自个在出错时关了连接,SOKCET出了异常可以看的出是那一种客户端接收的数据 出现乱包情况 TCP的 
    不知道,但是TCP是有序的,除非你网络紊乱.
      

  2.   

    最主要的是有的时候数据传输也能成功 第二问题 突然中断 STRING打印不出来 这个不知怎么回事 
    服务器数据发完 可是客户端没显示 但是接收到的数据是完全的 没有少
      

  3.   


    1,服务端数据的发完,仅是写到缓冲区里了,客户端的接收,要判断接实际接收字节数的,要循环接收(即使是一个字节)。
    2,不太明白你说的中断是什么意思。
    3,乱包是你没有同步好。原则上一个客户端在任何时间仅应该有一个待处理的WSARecv请求。我怀疑你肯定是投递了多个WSARecv请求又是多个IOWork线程,这样肯定会乱包的。
      

  4.   

    真正写一个高吞量、多客户端(1万以上)的服务程序,是很费时费力的。要有很多的调试工具才行。比如:Rational Test Suite,SoftICe ,SoftICe 等。有的BUG,要一周左右方才解决的。
      

  5.   

    你的打印是TRACE还是记录日志?