/// <summary> /// Publish one new shared file (only one) /// </summary> public void PublishSharedFile(CElement Element) { MemoryStream buffer=new MemoryStream(); CServerPublishFiles ServerPublishFiles=new CServerPublishFiles(buffer, Element); //if server supports compression we send it compressed if (SupportCompression) { CCompressedPacket CompressedPacket=new CCompressedPacket(ref buffer); } if (m_ServerConnection!=null) m_ServerConnection.SendPacket(buffer); }
/// <summary> /// Send a list of shared files to the server. /// </summary> public void PublishSharedFiles() { m_LastPublishedTime=DateTime.Now; MemoryStream buffer=new MemoryStream(); CServerPublishFiles ServerPublishFiles=new CServerPublishFiles(buffer, CKernel.FilesList, m_LastFilePublishedIndex); m_LastFilePublishedIndex=ServerPublishFiles.LastFilePublished+1; if (m_LastFilePublishedIndex>=CKernel.FilesList.Count-1) m_AllFilesPublished=true; //if server supports compression we send it compressed if (SupportCompression) { CCompressedPacket CompressedPacket=new CCompressedPacket(ref buffer); } if (m_ServerConnection!=null) m_ServerConnection.SendPacket(buffer); }
public void SendPacket(MemoryStream buffer) { if ((m_Client!=null)&&(buffer.GetBuffer()[0]== (byte)Protocol.ProtocolType.eMule)&&(m_Client.EmuleProtocol)&&(buffer.Length>1400)) { CCompressedPacket CompressedPacket=new CCompressedPacket(ref buffer); } byte[] packet=new byte[buffer.Length]; Buffer.BlockCopy(buffer.GetBuffer(),0,packet,0,packet.Length); stSendingPacket stPacket=new stSendingPacket(); stPacket.Packet=packet; stPacket.Freed=true; if ((m_SendPacketList.Count==0)&&(m_socket.Connected)&&(m_SendPacket==null)) SendPacket(packet,(int)buffer.Length); else { m_SendPacketList.Add(stPacket); } buffer.Close(); buffer=null; }