pSocket->Send(pBuf  ,nLen ,  0)         //正确发送,客户也接收到正确地数据pBuf为BYTE数组
你的pBuf在哪儿定义的
呵呵,先检查你的pBuf吧,应该是它溢出了:)

解决方案 »

  1.   

    WSAEINPROCESS错误,进程里存在阻塞socket了。
    你这个作法很有意思,有一个线程中accept来自client的socket(大概是在线程里吧),放入链表,再在另一处,依次取出每个clientsocket,发送。即使这种阻塞作法好象正常,但有一个明显的失误:如果只有你当前操作的socket是阻塞状态,而其他的都是可send的,岂不是一个人拖了大家的后腿?
    所以,如果你不得不把对所有client的操作都作在一个while(也就是一个线程里),那你最好用些非阻塞的方法,比如,用select来先测试哪些socket是非阻塞状态。或者其他方法。
      

  2.   

    pSocket->Send(pBuf,nLen,0)      // 发送不出去,
    我调试过,发现pBuf没有问题,定义为BYTE pBuf[50], nLen的值为27
      

  3.   

    我也觉得应该是pBuf有问题,nLen是什么类型的?你把nLen再设的小一点试试吧!
      

  4.   

    socket编程
    1、不用MFC中的类,这在VC6技术内幕中有具体的说明。
    2、如果是98下,应用重叠操作,即:WSASend等函数,这样不会阻塞,具体例程可以看MSDN在线帮助