public void ProcessBeginRequest() { UploadFileBeginResponse response = new UploadFileBeginResponse() { AllowUpload = true, RequestID = LastRequestID, UploadSessionID = UploadSessionID }; if (IsRunning) { response.AllowUpload = false; response.Message = "can not upload a new file because the last uploading is running."; _tcpServer.SendModelMessage(ClientID, response); return; } try { _fileStream = File.Open(SavePath, FileMode.Create, FileAccess.Write); } catch (Exception ex) { response.AllowUpload = false; response.Message = ex.Message; _tcpServer.SendModelMessage(ClientID, response); return; } _tcpServer.SendModelMessage(ClientID, response); _isRunning = true; _cancelWaitEvent.Reset(); _lastActiveTime = DateTime.Now; _cancelThread = ThreadEx.Start(CancelProc); }
protected virtual void OnTcpServer_MessageReceived(object sender, TcpRawMessageReceivedEventArgs args) { GeneralMessage clientMessage = GeneralMessage.Deserialize(args.Message.MessageRawData, false); //if the server message is model if (clientMessage.Header == (int)MessageHeader.Model) { //get model from general message object model = _tcpServer.ConvertToModel(clientMessage); if (model is QueryServerTimeRequest) { QueryServerTimeRequest queryTimeReq = model as QueryServerTimeRequest; QueryServerTimeResponse response = new QueryServerTimeResponse { RequestID = queryTimeReq.ID, ServerTime = DateTime.Now }; ServerRecvText += $"Received Request:\r\nfrom {queryTimeReq.Name}\r\n"; _tcpServer.SendModelMessage(args.Message.ClientID, response); } else { //do something for other model } } else { } }