public void FileDownloadRequestManager(FileDownloadRequest message) { DownloadClient downloadClient = null; foreach (DownloadClient client in clients) { if (message.SenderID == client.id) { downloadClient = client; break; } } if (File.Exists(UploadDirr + message.FileName) && downloadClient != null) { downloadClient.tcpSocket.Send(serializer.Serialize(new FileHeadderMessage(ClientIP, message.FileName))); using (FileStream File = new FileStream(UploadDirr + message.FileName, FileMode.Open)) { byte[] arr = new byte[SIZE]; do { File.Read(arr, 0, SIZE); downloadClient.tcpSocket.Send(serializer.Serialize(new FilePartMessage(ClientIP, arr))); }while (File.CanRead); } GeneralFunction.CloseSocket(ref downloadClient.tcpSocket); GeneralFunction.CloseThread(ref downloadClient.listenTcpThread); } }
public void NewClientAppear(Message message, Socket ConectedSocket) { if (message is ClientIDMessage) { ClientIDMessage RegMessage = (ClientIDMessage)message; DownloadClient client; client = new DownloadClient(RegMessage.Id, ConectedSocket, serializer); client.messageManager += UploadMessageManager; clients.Add(client); } }