int WSPSend (
  SOCKET                 s,                                                 
  LPWSABUF               lpBuffers,                                       
  DWORD                  dwBufferCount,                                      
  LPDWORD                lpNumberOfBytesSent,                              
  DWORD                  dwFlags,                                            
  LPWSAOVERLAPPED        lpOverlapped,                             
  LPWSAOVERLAPPED_COMPLETION_ROUTINE   lpCompletionRoutine,   
  LPWSATHREADID          lpThreadId,                                 
  LPINT                  lpErrno                                             
);
typedef struct __WSABUF {
  u_long      len;
  char FAR    *buf;
} WSABUF, FAR * LPWSABUF;
以上为各函数的原形.小弟我主要是对WSPSend中几个参数不明白.以下为我所理解,如有不正确,请指出
lpBuffers             指向发送包的数据指针
dwBufferCount         本次发送包的数量,也就是WSABUF数组的长度
lpNumberOfBytesSent   本次实际发送包字节数量如果以上参数理解正确的话.那么这三个参数之间是存在一定关系.即:
lpNumberOfBytesSent   = (lpBuffers->len之和)可是在实际中,我发现与我理解的并不一样,请问这三个参数,应该如何理解?

解决方案 »

  1.   

    lpNumberOfBytesSent是需要你的来赋值的
      

  2.   

    一楼的仁兄:
    我是在SPI分层中使用这个原型的.我想在这个函数中实现自己的控制,那么程序运行到SPI分层中的WSPSend函数时,最初(未加入自己的修改)lpNumberOfBytesSent中应该是已经有其它应用程序赋好值.
    如果我需要对这次会话中的Buffer修改,那么此时才应该是我来修改lpNumberOfBytesSent的值,我这样理解对不?
      

  3.   

    如果对方用完成端口呢,wsasend函数立即返回,lpNumberOfBytesSent参数这时候不起什么作用!
      

  4.   

    太高深了.可否加我MSN,讨论一下:[email protected]