public void SendFile(string fileName) { SendFileManager sendFileManager = new SendFileManager(fileName); if (SendFileManagerList.ContainsKey(sendFileManager.MD5)) { throw new Exception(string.Format( "文件 {0} 正在发送,不能发送重复的文件。", fileName)); } else { SendFileManagerList.Add(sendFileManager.MD5, sendFileManager); sendFileManager.ReadFileBuffer += new ReadFileBufferEventHandler( SendFileManageReadFileBuffer); TraFransfersFileStart ts = new TraFransfersFileStart( sendFileManager.MD5, sendFileManager.Name, Icon.ExtractAssociatedIcon(fileName).ToBitmap(), sendFileManager.Length, sendFileManager.PartCount, sendFileManager.PartSize); Send((int)Command.RequestSendFile, ts); } }
public RequestSendFileEventArgs( TraFransfersFileStart traFransfersFileStart, IPEndPoint remoteIP) : base() { _traFransfersFileStart = traFransfersFileStart; _remoteIP = remoteIP; }
private void OnStartRecieve( TraFransfersFileStart traFransfersFileStart, IPEndPoint remoteEP) { OnRequestSendFile( new RequestSendFileEventArgs( traFransfersFileStart, remoteEP)); }
private void OnStartRecieve( TraFransfersFileStart traFransfersFileStart, IPEndPoint remoteEP) { _receiveFileManager = new ReceiveFileManager( _path, traFransfersFileStart.FileName, traFransfersFileStart.PartCount, traFransfersFileStart.PartSize, traFransfersFileStart.Length); Send(0, "OK", remoteEP); }
public void AcceptReceive(RequestSendFileEventArgs e) { TraFransfersFileStart traFransfersFileStart = e.TraFransfersFileStart; IPEndPoint remoteIP = e.RemoteIP; ResponeTraFransfersFile responeTraFransfersFile; if (e.Cancel) { responeTraFransfersFile = new ResponeTraFransfersFile( traFransfersFileStart.MD5, 0, -1); Send((int)Command.ResponeSendFile, responeTraFransfersFile, remoteIP); } else { ReceiveFileManager receiveFileManager; if (!ReceiveFileManagerList.TryGetValue( traFransfersFileStart.MD5, out receiveFileManager)) { receiveFileManager = new ReceiveFileManager( traFransfersFileStart.MD5, e.Path, traFransfersFileStart.FileName, traFransfersFileStart.PartCount, traFransfersFileStart.PartSize, traFransfersFileStart.Length, remoteIP); receiveFileManager.ReceiveFileComplete += new FileReceiveCompleteEventHandler( ReceiveFileManagerReceiveFileComplete); receiveFileManager.ReceiveFileTimeout += new EventHandler(ReceiveFileManagerReceiveFileTimeout); ReceiveFileManagerList.Add( traFransfersFileStart.MD5, receiveFileManager); receiveFileManager.Start(); } responeTraFransfersFile = new ResponeTraFransfersFile( traFransfersFileStart.MD5, 0, 0); Send((int)Command.ResponeSendFile, responeTraFransfersFile, remoteIP); } }
public void SendFile(SendFileManager sendFileManager, Image image) { if (SendFileManagerList.ContainsKey(sendFileManager.MD5)) { throw new Exception(string.Format( "文件 {0} 正在发送,不能发送重复的文件。", sendFileManager.FileName)); } else { SendFileManagerList.Add(sendFileManager.MD5, sendFileManager); sendFileManager.ReadFileBuffer += new ReadFileBufferEventHandler( SendFileManageReadFileBuffer); TraFransfersFileStart ts = new TraFransfersFileStart( sendFileManager.MD5, sendFileManager.Name, image, sendFileManager.Length, sendFileManager.PartCount, sendFileManager.PartSize); Send((int)Command.RequestSendFile, ts); } }