Ejemplo n.º 1
0
        private void OnFileUploadReq(Datagram datagram)
        {
            FileUploadReq req = datagram.UnSerialData <FileUploadReq>();

            Upload upload    = new Upload(FileRootPath + "\\" + datagram.Sender.ToString(), req.Path, req.Name, req.Size);
            Guid   upload_id = Guid.NewGuid();

            if (FileCache.TryAdd(upload_id, upload))
            {
                FileUploadRes res = new FileUploadRes
                {
                    UploadID = upload_id
                };
                datagram.DataType    = DatagramType.Client;
                datagram.MessageType = CloudDatagramDefine.FileUploadRes;

                datagram.Datas = res.ToByteArray();
                if (!Send(datagram.ToByteArray()))
                {
                    Notify(IKXTServer.LogLevel.Error, "数据发送异常");
                    Close();
                }
            }
            else
            {
                upload.Clear();
            }
        }
Ejemplo n.º 2
0
        private void OnCloud_FileUploadRes(Datagram datagram)
        {
            FileUploadRes response = datagram.UnSerialData <FileUploadRes>();

            if (RunningDatas.RequestTable.TryRemove(datagram.RequestID, out RequestSender value))
            {
                value.RequestCallback(response);
            }
        }
Ejemplo n.º 3
0
            public void RequestCallback(object response)
            {
                if (null != response)
                {
                    if (response.GetType() == FileUploadResTemp.GetType())
                    {
                        WaitTimer.Stop();

                        FileUploadRes res = response as FileUploadRes;

                        Root.ToStartUpload(res.UploadID, File, ID);
                    }
                    else if (response.GetType() == FileDownloadResTemp.GetType())
                    {
                        WaitTimer.Stop();

                        FileDownloadRes res = response as FileDownloadRes;

                        File.Size = res.Size;
                        Root.ToStartDownload(res.DownloadID, File, ID);
                    }
                }
            }