CClientSocket *m_WebSock = NULL;
_EachOtherData eoData;
//全域變數
void ProcessPendingReceive( CClientSocket* pSocket)//有資料過來自動呼叫
{
ExplanData( pSocket, ( char* )msg.m_strText, msg.len);//資料處理函式
}
void ExplanData( CClientSocket* pSocket, char* strTmp, int strLen)
{
if( strLen <= 0)
return;
if( *strTmp == cHD &&
*( strTmp + 1) == cHD)//“##”代表Web端資料
{
ExplanWeb( pSocket, pStr + sID.GetLength() + strlen( pID) + 2 + 1);//決議Web端資料
eoData.pWebSocket = pSocket;//保存WebSock
}
if( *strTmp == 'R')//R
{
eoData.pSocket = pSocket;
eoData.pStr = strTmp;
eoData.len = strLen;
CWinThread *pRobotThread = AfxBeginThread(RobotProc,&eoData);
pRobotThread->ResumeThread();
}
}
void ExplanWeb( CClientSocket* pSocket, char* pStr)
{
int i = 0;
m_WebSock = pSocket;//得到WebSocket
CString sHost = GetNameValue( pStr, pHost);
int iCom = atoi( sCom);
switch ( iCom)
{
case ALL_DEV:
SendWebMsg( m_WebSock, ALL_DEV, sHost, 0);
break;
}
}
void SendWebMsg(CClientSocket *pSocket, int iCom, CString sHost, int iDevID)
{
if( pSocket != NULL)
{
CString strTmp = "";
CString str = "";
char *pStr = NULL;
int cpLen = 0;
if( iCom == ALL_DEV)
{
if( pStr != NULL)
{
pSocket->Send( pStr, cpLen);
}
}
}
UINT RobotProc(LPVOID lpParam)
{
_EachOtherData* pData = (_EachOtherData*)lpParam;
CServerDlg* pDlg = (CServerDlg*)lpParam;
str = pDlg->GetDataToRobot(pData->pSocket,pData->pStr, pData->len);
pData->pSocket->WriteMsg( str.GetBuffer(), strlen( str));
return 0;
}
CString GetDataToRobot(CClientSocket *sock, char *pStr, int len)
{
CString tempStr = "";
CString rtnStr = "";
eoData.pSocket = sock;
eoData.pStr = pStr;
eoData.len = strlen(pStr);
pRobotResponseThread = AfxBeginThread(RobotResponseProc,&eoData);//機器回應程序
pRobotResponseThread->ResumeThread();
//Sleep(1000);
return 0;
}
UINT RobotResponseProc(LPVOID lpParam)
{
_EachOtherData* pData = (_EachOtherData*)lpParam;
CString temp = pData->pStr;
int first,last;
first= temp.Find("R");
last= temp.Find(";");
CString str = temp.Mid(first,last);
char* pStr=str.GetBuffer(0);
int len = strlen(pStr);
m_WebSock = pData->pWebSocket;
if(m_WebSock!=NULL)
m_WebSock->Send(pStr,len);
}
uj5u.com熱心網友回復:
殺毒軟體關了也許就對了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/101637.html
上一篇:api執行緒錯誤,canvas does not allow drawing,help
下一篇:C++
