UINT CCltComm::send_fun(void *param)
{
if(NULL == param)
return -1; CCltComm *pCltComm = (CCltComm*)param;
if(NULL == pCltComm)
return -1; WSABUF send_buf;
WSAOVERLAPPED overlapped;
WSAEVENT event_send;
event_send = WSACreateEvent();
send_buf.len = 4096;
send_buf.buf = new char[send_buf.len]; ZeroMemory(&overlapped,sizeof(WSAOVERLAPPED));
overlapped.hEvent = event_send;

DWORD dwFlags = 0; for(int i = 0; i < 1024; i++)
{
send_buf.buf[i] = 255 * rand() / RAND_MAX;
}
send_buf.len = 1024;
while(TRUE)
{
//得有这个延时
int datalen = 1024;
//memset(send_buf.buf,0,send_buf.len);
//pCltComm->GetDataFromBuf(send_buf.buf,datalen);
if(datalen <= 0)
{
Sleep(10);
continue;
}
DWORD dwSendBytes = datalen;
send_buf.len = datalen;
WSASend(pCltComm->m_cltSocket,
&send_buf,
1,
&dwSendBytes,
dwFlags,
&overlapped,
NULL); Sleep(1);
DWORD dwTransfer = 0;
BOOL ret = WSAGetOverlappedResult(pCltComm->m_cltSocket,
&overlapped,
&dwTransfer,
TRUE,
&dwFlags); if(!ret)
{
TRACE("ERROR");
} WaitForSingleObject(event_send,INFINITE); if(dwTransfer <= 0)
{
TRACE("asdfs\n");
WSAResetEvent(event_send);
continue;
} WSAResetEvent(event_send);

} AfxEndThread(0);
return 0;
}