萍乡做网站的,网站建设算软件还是硬件,房产网站管理系统,深圳市建设交易中心网站首页自定义消息函数
afx_msg LRESULT CbaseMFCprojectDlg::OnOnsocketbartender(WPARAM wParam, LPARAM lParam)
WPARAM wParam:消息来源
res recv(wParam, cs, 65535, 0);获取这个客户端端口socket通道里面的信息长度为65535存放在cs里面
如果获取得到res0即是说明该客户端已经断…自定义消息函数
afx_msg LRESULT CbaseMFCprojectDlg::OnOnsocketbartender(WPARAM wParam, LPARAM lParam)
WPARAM wParam:消息来源
res recv(wParam, cs, 65535, 0);获取这个客户端端口socket通道里面的信息长度为65535存放在cs里面
如果获取得到res0即是说明该客户端已经断开了与服务器的连接服务器需要主动关闭此连接
closesocket(wParam);关闭这一消息通道的函数 afx_msg LRESULT CbaseMFCprojectDlg::OnOnsocketbartender(WPARAM wParam, LPARAM lParam)
{CString str();char cs[65535] ;char cs2[65535] ;char cs3[65535] ;char cs4[65535] ;char cs5[65535] ;char cs6[65535] ;char cs7[65535] ;char cs8[65535] ;char cs9[65535] ;char cs10[65535] ;//char cs11[65535] ;//char cs12[65535] ;//char cs13[65535] ;//char cs14[65535] ;//char cs15[65535] ;//char cs16[65535] ;//char cs17[65535] ;//char cs18[65535] ;//char cs19[65535] ;//char cs20[65535] ;switch (lParam){case FD_ACCEPT://连接请求{int length sizeof(m_addrServerBack_Bartender);//接收客户端的请求m_ServerSocketBack_Bartender accept(m_ServerSocket_Bartender, (sockaddr*)m_addrServerBack_Bartender, length);m_wParamsBartender.emplace_back(m_ServerSocketBack_Bartender);SetTimer(2, 2000, NULL);}break;case FD_READ://发送数据请求{//CString num ;CString num();CString num2();CString num3();CString num4();CString num5();//CString num6();//CString num7();//CString num8();//CString num9();CString num10();//CString num11();//CString num12();//CString num13();//CString num14();//CString num15();//CString num16();//CString num17();//CString num18();//CString num19();//CString num20();//CString temp;//temp m_recvupcomputer;int res;res recv(wParam, cs, 65535, 0);//最大读取int类型65535长度的内容res recv(wParam, cs2, 65535, 0);//res返回为0表示客户端已经断开连接为大于1的数则表示成功读取为-1则表示有连接但读取失败res recv(wParam, cs3, 65535, 0);res recv(wParam, cs4, 65535, 0);res recv(wParam, cs5, 65535, 0);//res recv(wParam, cs6, 65535, 0);//res recv(wParam, cs7, 65535, 0);//res recv(wParam, cs8, 65535, 0);//res recv(wParam, cs9, 65535, 0);res recv(wParam, cs10, 65535, 0);//res recv(wParam, cs11, 65535, 0);//res recv(wParam, cs12, 65535, 0);//res recv(wParam, cs13, 65535, 0);//res recv(wParam, cs14, 65535, 0);//res recv(wParam, cs15, 65535, 0);//res recv(wParam, cs16, 65535, 0);//res recv(wParam, cs17, 65535, 0);//res recv(wParam, cs18, 65535, 0);//res recv(wParam, cs19, 65535, 0);//res recv(wParam, cs20, 65535, 0);num cs;num2 cs2;num3 cs3;num4 cs4;num5 cs5;//num6 cs6;//num7 cs7;//num8 cs8;//num9 cs9;num10 cs10;//num11 cs11;//num12 cs12;//num13 cs13;//num14 cs14;//num15 cs15;//num16 cs16;//num17 cs17;//num18 cs18;//num19 cs19;//num20 cs20;if (res 0 num.GetLength() 0) {closesocket(wParam);//客户端已经断开连接服务器这边需要释放掉这个客户端writeShowLog2(_T(bartender正常断开));writeErrorLog(bartender正常断开);//if (m_recvzpls.size() m_parameters_fileds[0].at(connom_tagnum).ivalue * 2) {// ::PostMessage(theMainDlg-m_hWnd, WM_SOCKET_CLIENT_PLC, 0, 2);//激活自发打印事件//}if (m_printResultSend 0) {KillTimer(4);m_printResultSend 0;JsonmesSend jms;jms.code 0;jms.mcuIndex 1;jms.businessType printResult;std::string bostr ;jms.bo bostr;MesServerSend(jms);}for (int i 0; i m_wParamsBartender.size(); i) {if (wParam m_wParamsBartender[i]) {m_wParamsBartender.erase(m_wParamsBartender.begin() i);//在vector中erase掉这个客户端break;}}break;if (m_wParamsBartender.size() 0) {KillTimer(2);}}CString stateStr;//CString recv;stateStr.Format(_T(收到Bartender%s), num);//recv num;//m_recvupcomputer temp;m_recvBartender num;if (num2.GetLength() 0) {m_recvBartender num2;stateStr num2;}if (num3.GetLength() 0) {m_recvBartender num3;stateStr num3;}if (num4.GetLength() 0) {m_recvBartender num4;stateStr num4;}if (num5.GetLength() 0) {m_recvBartender num5;stateStr num5;}//if (num6.GetLength() 0) {// m_recvBartender num6;// stateStr num6;//}//if (num7.GetLength() 0) {// m_recvBartender num7;// stateStr num7;//}//if (num8.GetLength() 0) {// m_recvBartender num8;// stateStr num8;//}//if (num9.GetLength() 0) {// m_recvBartender num9;// stateStr num9;//}if (num10.GetLength() 0) {m_recvBartender num10;stateStr num10;if (num10.GetLength() 60000) {writeShowLog(_T(传输过长请处理bartender));writeErrorLog(传输过长请处理bartender);}}//if (num20.GetLength() 0) {// m_recvBartender num20;// stateStr num20;// if (num20.GetLength() 60000) {// writeShowLog(_T(传输过长请处理bartender));// writeErrorLog(传输过长请处理bartender);// }//}//{number:-1}//if (m_upcomputerstatus 0) {if (num.GetLength() 0) {//说明有接收长度std::string log (CW2A)stateStr;writeErrorLog(log);CString findstart2, findend2;findstart2 _T(^XA);findend2 _T(^XZ);//重新寻找重定位s2,e2int s2 m_recvBartender.Find(findstart2);int e2 m_recvBartender.Find(findend2);if (s2 0) {//closesocket(m_ServerSocketBack_Bartender);//m_wParam wParam;//SetTimer(2, 2000, NULL);m_upcomputerstatus 2;if (e2 0) {m_upcomputerstatus 0;CString recvzpl;recvzpl m_recvBartender.Mid(s2, e2 - s2 findend2.GetLength());m_recvzpls.emplace_back(recvzpl);m_recvBartender m_recvBartender.Right(m_recvBartender.GetLength() - e2 - findend2.GetLength());//重新寻找重定位s2,e2s2 m_recvBartender.Find(findstart2);e2 m_recvBartender.Find(findend2);while (s2 0) {if (e2 0) {break;}recvzpl m_recvBartender.Mid(s2, e2 - s2 findend2.GetLength());m_recvzpls.emplace_back(recvzpl);m_recvBartender m_recvBartender.Right(m_recvBartender.GetLength() - e2 - findend2.GetLength());//重新寻找重定位s2,e2s2 m_recvBartender.Find(findstart2);e2 m_recvBartender.Find(findend2);};if (s2 0) {m_recvBartender m_recvBartender.Right(m_recvBartender.GetLength() findstart2.GetLength() ? m_recvBartender.GetLength() : findstart2.GetLength());}//if (m_recvzpls.size() m_parameters_fileds[0].at(connom_tagnum).ivalue * 2) {if (m_recvzpls.size() 0) {if (m_printerSendTimes 0) {::PostMessage(theMainDlg-m_hWnd, WM_SOCKET_CLIENT_PLC, 0, 2);//激活自发打印事件}}if (m_recvzpls.size() m_parameters_fileds[0].at(connom_tagnum).ivalue * 2) {//if (m_recvzpls.size() 0) {{closesocket(wParam);//完整接受zpl自动断开连接服务器这边需要释放掉这个客户端writeShowLog2(_T(bartender正常自动断开));writeErrorLog(bartender正常自动断开);if (m_printResultSend 0) {KillTimer(4);m_printResultSend 0;JsonmesSend jms;jms.code 0;jms.mcuIndex 1;jms.businessType printResult;std::string bostr ;jms.bo bostr;MesServerSend(jms);}for (int i 0; i m_wParamsBartender.size(); i) {if (wParam m_wParamsBartender[i]) {m_wParamsBartender.erase(m_wParamsBartender.begin() i);//在vector中erase掉这个客户端break;}}break;if (m_wParamsBartender.size() 0) {KillTimer(2);}}}else if (m_recvzpls.size() m_parameters_fileds[0].at(connom_tagnum).ivalue * 2) {writeShowLog2(_T(bartenderZPL超限));writeErrorLog(bartenderZPL超限);}}}else {if (e2 0) {writeShowLog2(_T(zpl错误));m_recvBartender _T();}}CString show;show.Format(_T(zpl个数%d), m_recvzpls.size());writeShowLog2(show);log (CW2A)show;writeErrorLog(log);}}break;}return 0;
}