public void add(p2pFileTransmitEX _p2pFileTransmit)
 {
     base.InnerList.Add(_p2pFileTransmit);
 }
 public void Romove(p2pFileTransmitEX _p2pFileTransmit)
 {
     base.InnerList.Remove(_p2pFileTransmit);
 }
Example #3
0
        /// <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);//设置文件传输组件相关参数
            }
        }