我封装的Winsock 类 中的 send 和 receive 有问题,帮忙看看
int CSynchronizationSocket::SendData(UINT nID, const void* pData, int nDataLength)
{
int nSend;
nSend = send(m_socket, (LPSTR)pData, nDataLength,
MSG_DONTROUTE);
if(nSend == SOCKET_ERROR)
{
return 0;
}
else
{
return nSend;
}
}
int CSynchronizationSocket::GetData(const void* pData, int nDataLength)
{
int nAmount;
nAmount = recv(m_socket, (LPSTR)pData, nDataLength, MSG_PEEK);
if(nAmount == SOCKET_ERROR)
{
return 0;
}
else
{
return nAmount;
}
}
用 byte 来发送文件得不到。
怎么解决呢?
//
recv(m_socket, (LPSTR)pData, nDataLength, MSG_PEEK);
仿照的是mfc的封装。
int CAsyncSocket::Send(const void* lpBuf, int nBufLen, int nFlags)
{
return send(m_hSocket, (LPSTR)lpBuf, nBufLen, nFlags);
}
//