public void add(p2pFileTransmitEX _p2pFileTransmit) { base.InnerList.Add(_p2pFileTransmit); }
public void Romove(p2pFileTransmitEX _p2pFileTransmit) { base.InnerList.Remove(_p2pFileTransmit); }
/// <summary> /// 发送或接收图片文件 /// </summary> /// <param name="IsSend">true是发送者,false是接收者</param> /// <param name="fullFileName">要发送的文件的绝对路径,如果接收则传空字符串</param> /// <param name="FileName">文件名</param> /// <param name="FileLen">文件的长度</param> /// <param name="fileExtension">文件扩展名</param> /// <param name="FileMD5Value">文件的MD5值</param> public void ImageTransfers(bool IsSend, string fullFileName, string FileName, int FileLen, string fileExtension, string FileMD5Value) { if (this.imageP2Ps.find(FileMD5Value) == null)//如果图片不在传输队列,则创建新文件传输组件进行传输 { CSS.IM.Library.Controls.p2pFileTransmitEX imageTransmit = new CSS.IM.Library.Controls.p2pFileTransmitEX(); this.imageP2Ps.add(imageTransmit);//添加文件传输组件到传输队列 imageTransmit.fileTransmitGetUDPPort += new CSS.IM.Library.Controls.p2pFileTransmitEX.GetUDPPortEventHandler(imageTransmit_fileTransmitGetUDPPort); imageTransmit.fileTransmitted += new CSS.IM.Library.Controls.p2pFileTransmitEX.fileTransmittedEventHandler(imageTransmit_fileTransmitted);//图片传输结束 imageTransmit.fileTransmitOutTime += new p2pFileTransmitEX.fileTransmitOutTimeEventHandler(imageTransmit_fileTransmitOutTime); //imageTransmit.fileTransmitConnected += new p2pFileTransmit.ConnectedEventHandler(imageTransmit_fileTransmitConnected); //imageTransmit.fileTransmitCancel += new p2pFileTransmit.fileTransmitCancelEventHandler(imageTransmit_fileTransmitCancel);//图片传输取消或异常中断 //imageTransmit.getFileProxyID += new p2pFileTransmit.getFileProxyIDEventHandler(imageTransmit_getFileProxyID); //imageTransmit.fileTransmitting += new p2pFileTransmit.fileTransmittingEventHandler(imageTransmit_fileTransmitting); if (IsSend) { string fileInfo = FileName + "|" + FileLen.ToString() + "|" + fileExtension + "|" + FileMD5Value;//初次请求发送文件时要先发送“控件参数”到对方,请求对方创建“文件发送控件”并建立连接 CSS.IM.Library.Class.Msg msg = new CSS.IM.Library.Class.Msg((byte)ProtocolClient.ImageTransmitRequest, TextEncoder.textToBytes(fileInfo)); this.LB_sockUDP.Send(RemotBaseUDPIP, RemotBaseUDPPort, msg.getBytes()); imageTransmit.ServerIp = RemotBaseUDPIP; } else { System.IO.DirectoryInfo dInfo = new System.IO.DirectoryInfo(Util.receiveImage); if (!dInfo.Exists) dInfo.Create(); imageTransmit.ServerIp = RemotBaseUDPIP; imageTransmit.startIncept(Util.receiveImage + FileMD5Value + fileExtension);//自动接收图片 } imageTransmit.SetParameter(IsSend, fullFileName, FileName, FileLen, fileExtension, FileMD5Value);//设置文件传输组件相关参数 } }