16,551
社区成员
发帖
与我相关
我的任务
分享
int CBTDemoDlg::SendData(char *pszData, int nSize,int *pnError)
{
if(!m_bConnect)
return 0;
char szHeader[5];
char szBuffer[1050];
char *pszDataBegin = NULL;
int nDataLen;
int nTotalLen;
memset(szHeader, 0, sizeof(szHeader));
memset(szBuffer, 0, sizeof(szBuffer));
nDataLen = strlen(pszData);
_itoa(nDataLen,szHeader,10);
nTotalLen = nDataLen + 5;
strcpy(szBuffer,szHeader);
strcat(szBuffer,pszData);
pszDataBegin = szBuffer;
for(int i = 0;i < nTotalLen/MAX_DATA_LEN; i++)
{
int nSend = m_btConnect.Send(pszDataBegin,nTotalLen);
if(nSend == SOCKET_ERROR)
{
*pnError = GetLastError();
return 0;
}
pszDataBegin += MAX_DATA_LEN;
}
if(nTotalLen % MAX_DATA_LEN)
{
int nSend = m_btConnect.Send(pszDataBegin,nTotalLen%MAX_DATA_LEN);
if(nSend == SOCKET_ERROR)
{
*pnError = GetLastError();
return 0;
}
}
return 1;
}