(7) 读取数据。

BOOL Read(void)
{
int nBytesRead;
int nBufferLength;
int nEnd;
int nSpaceRemaining;
char chIncomingDataBuffer[4096];
SOCKADDR_IN m_saFromAddr;
int nLenght = sizeof(m_saFromAddr);
ZeroMemory(&m_saFromAddr, sizeof(SOCKADDR_IN));
nEnd = 0;
nBufferLength = sizeof(chIncomingDataBuffer);
nSpaceRemaining = sizeof(chIncomingDataBuffer);
nSpaceRemaining -= nEnd;

nBytesRead = recvfrom(m_Socket, (LPSTR) (chIncomingDataBuffer + nEnd), nSpaceRemaining, 0, (LPSOCKADDR) &m_saFromAddr, &nLenght);
nEnd += nBytesRead;
if (nBytesRead == SOCKET_ERROR)
{
AfxMessageBox("读取数据出错!")
return FALSE;
}
// IP地址:inet_ntoa(m_saFromAddr.sin_addr);
// 端口号:ntohs(m_saFromAddr.sin_port);
chIncomingDataBuffer[nEnd] = '\0';
if (lstrlen(chIncomingDataBuffer) != 0)
{
AfxMessageBox(chIncomingDataBuffer);
}
return TRUE;
}


相关内容