private void setResponse(FuncMsgServer msg) { lock (_monitorLock) { _response = msg; _isWaitingMsg = true; Monitor.PulseAll(_monitorLock); } }
public ForumConnectionImpl(string ip, int port) { _monitorLock = new Object(); _AvailableLock = new Object(); _WaitingReplyLock = new Object(); _orders = new List <FuncMsgServer>(); _ip = ip; _port = port; _server = null; _isWaitingMsg = false; _isAvailable = true; _response = null; }
public void run() { try { BinaryFormatter bformatter = new BinaryFormatter(); while (true) { FuncMsgClient msg = (FuncMsgClient)bformatter.Deserialize(_con.GetStream()); FuncMsgServer response = _usrHand.processMsg(msg); bformatter.Serialize(_con.GetStream(), response); } } catch { return; } }
public FuncMsgServer processMsg(FuncMsgClient msg) { try { object response = _actions[(int)msg.type](msg.args); List <object> responseLst = new List <object> { response }; FuncMsgServer responseMsg = new FuncMsgServer { type = FuncMsgServer.FuncType.Replay, args = responseLst }; return(responseMsg); } catch { FuncMsgServer responseMsg = new FuncMsgServer { type = FuncMsgServer.FuncType.ErrorReplay, args = null }; return(responseMsg); } }
private void reader() { BinaryFormatter bformatter = new BinaryFormatter(); while (true) { FuncMsgServer msg = (FuncMsgServer)bformatter.Deserialize(_server.GetStream()); if (msg.type == FuncMsgServer.FuncType.Replay || msg.type == FuncMsgServer.FuncType.ErrorReplay) { setResponse(msg); } else { _orders.Add(msg); } /* * catch * { * return; * } * */ } }