private static void do_MainThread() { __RECOG_RESULT stRecogResult = new __RECOG_RESULT(); __STAT_INFO stStatInfo = new __STAT_INFO(); PROTOCOL_COMMON objProtCmn = new PROTOCOL_COMMON(); RECOGRESULT objRecogResult = new RECOGRESULT(); STATINFO objStatInfo = new STATINFO(); byte[] szRecvBuff = new byte[1024]; int nRecvLength = 0; int nRetVal = 0; string strRetStr = ""; while (true) { if (stCliSock.bConn == false) { Thread.Sleep(100); continue; } szRecvBuff = objSockMgr.recvByteMsg(ref stCliSock, ref nRecvLength); if (nRecvLength <= 0) { Thread.Sleep(500); Console.WriteLine("Receive NO-DATA{0}", nRecvLength); continue; } nRetVal = objProtCmn.chkMsg(szRecvBuff, nRecvLength); if (nRetVal != (int)PROTOCOL_COMMON.E_PROTOCOL_RET.SUCCESS) { //objLtoS.getLprsMsg(szRecvBuff, nRecvLength); strRetStr = ""; strRetStr = chkInstruction(szRecvBuff, ref stCliSock); if (strRetStr.Contains("LPRS|")) { objRecogResult.getRecogResult(ref stRecogResult, ref szRecvBuff); } else if (strRetStr.Contains("ST|")) { lock (stCliSock.objLock) { stCliSock.lnResetTime = DateTime.UtcNow.Ticks; stCliSock.bConn = true; } objStatInfo.getStatInfo(ref stStatInfo, ref szRecvBuff); } else { //do something } } else { Console.WriteLine(Encoding.ASCII.GetString(szRecvBuff)); continue; } } }
public void recvMsg(ref SOCK_INFO stSock) { __RECOG_RESULT stRecogResult = new __RECOG_RESULT(); __STAT_INFO stStatInfo = new __STAT_INFO(); RECOGRESULT objRecogResult = new RECOGRESULT(); STATINFO objStatInfo = new STATINFO(); int nRecvLength = 0; byte[] szRcvBuff = new byte[1024]; string strBuff; if (stSock.bConn == false) { //return (int)ENUM_VALUE_SOCKETMGR.FAILED_NULL_SOCKET; Thread.Sleep(500); // just for TEST //Console.WriteLine("Now disconnected to client!"); return; } //stSock.lnResetTime = DateTime.UtcNow.Ticks; // just for TEST try { nRecvLength = stSock.objSock.Receive(szRcvBuff); } catch (Exception eCmn) { Thread.Sleep(500); Console.WriteLine("Exception!! Source : {0}, Message : {1}", eCmn.Source, eCmn.Message); return; } if (nRecvLength <= 0) { Thread.Sleep(500); Console.WriteLine("Receive NO-DATA{0}", nRecvLength); //return (int)ENUM_VALUE_SOCKETMGR.RECV_NO_DATA; return; } else { strBuff = Encoding.ASCII.GetString(szRcvBuff, 0, nRecvLength); Console.WriteLine(strBuff); if (szRcvBuff[nRecvLength - 1] != 0x03) { Console.WriteLine("Invalid ETX in receive message!"); } else if (strBuff.Contains("LPRS|")) { objRecogResult.getRecogResult(ref stRecogResult, ref szRcvBuff); } else if (strBuff.Contains("ST|")) { // re-up coonnection check flag lock (stSock.objLock) { stSock.lnResetTime = DateTime.UtcNow.Ticks; stSock.bConn = true; } objStatInfo.getStatInfo(ref stStatInfo, ref szRcvBuff); } else { Console.WriteLine("Invalid Instruction!"); } //return (int)ENUM_VALUE_SOCKETMGR.SUCCESS; return; //nRecvLength = 0; } }