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之和)可是在实际中,我发现与我理解的并不一样,请问这三个参数,应该如何理解?
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之和)可是在实际中,我发现与我理解的并不一样,请问这三个参数,应该如何理解?
我是在SPI分层中使用这个原型的.我想在这个函数中实现自己的控制,那么程序运行到SPI分层中的WSPSend函数时,最初(未加入自己的修改)lpNumberOfBytesSent中应该是已经有其它应用程序赋好值.
如果我需要对这次会话中的Buffer修改,那么此时才应该是我来修改lpNumberOfBytesSent的值,我这样理解对不?