看了別人的代碼,想改下,除錯接收資料時老報錯。該怎么辦呢
代碼:
UINT recv_thd(LPVOID p)
{
int res;
char msg[1024];
CString s;
CCFileDlg * dlg = (CCFileDlg *) AfxGetApp()->GetMainWnd();
dlg->update("in thd");
while(1)
{
if( (res = recv(sock, msg, 1024, 0)) ==-1)
{
dlg->update("失去連接");
break;
}
else
{
msg[res] = '\0';
//msg[res] = 0;
dlg->update("server:" + CString(msg));
////////////////////////////////////////////自己添加//
CString data;
data = msg;
CString str1;
CString str2;
CString str3;
CString str4;
CString str5;
CString machine_num;
AfxExtractSubString(machine_num,data,0,'#');
AfxExtractSubString(str1,data,1,'#');
AfxExtractSubString(str2,data,2,'#');
AfxExtractSubString(str3,data,3,'#');
AfxExtractSubString(str4,data,4,'#');
AfxExtractSubString(str5,data,5,'#');
if (machine_num=="m1")
{
dlg->m1_zhuansu= str1;
dlg->m1_qiansheng = str2;
dlg->m1_niandu = str3;
dlg->m1_dingchang = str4;
dlg->m1_chanliang = str5;
}
dlg->UpdateData(false);
}
}
//closesocket(sock);
return 0;
}
uj5u.com熱心網友回復:
使用A2T()、A2W()函式轉換uj5u.com熱心網友回復:
執行緒要發訊息給顯示視窗,不要直接呼叫uj5u.com熱心網友回復:
PostMessage方式給主執行緒發送資料,只有主執行緒可以用來更新UI界面uj5u.com熱心網友回復:
這個怎么實作呢uj5u.com熱心網友回復:
http://blog.csdn.net/a8082649/article/details/7824927uj5u.com熱心網友回復:
你執行緒發送自定義訊息到UI執行緒,在UI執行緒的訊息回應函式中去拆分資訊,然后分別顯示在不同的編輯框中即可。uj5u.com熱心網友回復:
必須有字串拆分協議…uj5u.com熱心網友回復:
不知道有多少前人掉在TCP Socketsend(人多)send(病少)send(財富)
recv(人多病)recv(少財富)
陷阱里面啊!
http://bbs.csdn.net/topics/380167545
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/105222.html
標籤:網絡編程
