/// <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; }