示例#1
0
 public FileServer(int id, TcpSocket tcpSocket, Dictionary <byte, FileServerTcpPacketHandler> fileServerPacketProcessor)
 {
     this.ID = id;
     this.fileServerPacketProcessor = fileServerPacketProcessor;
     this.fileServerState           = new FileServerState(id);
     this.TcpSocketWorker           = new TcpSocketWorker(tcpSocket, this.HandleTcpPacket);
     this.TcpSocketWorker.Closed   += TcpSocketWorker_Closed;
 }
示例#2
0
        private TcpPacket HandleReturnDownloadEndPoint(TcpPacket tcpPacket, FileServerState state)
        {
            using (var reader = tcpPacket.GetPayloadBufferReader())
            {
                var ip   = reader.ReadString();
                var port = reader.ReadInt32();
                this.settings.FileServerMetaStorage.StorageDownloadEndPoint(state.ID, ip, port);
            }

            return(null);
        }
示例#3
0
        private TcpPacket HandleReturnFileList(TcpPacket tcpPacket, FileServerState state)
        {
            using (var reader = tcpPacket.GetPayloadBufferReader())
            {
                var json  = reader.ReadString();
                var files = JsonConvert.DeserializeObject <List <FileDetails> >(json);
                this.settings.FileServerMetaStorage.StoreFileList(state.ID, files);
            }

            return(null);
        }