public void Send(Message msg) { Log("Send() " + msg.GetMessageHeader().GetMsgID().ToString()); MessageHeader h = msg.GetMessageHeader(); // Sunucu tarafı ise if (h.isServerSideCommand()) { // Sunucu tarafı ama disk'e yaz işaretli. if (MessageAttribute.GetMessageAttribute(Message.GetTypeFromID(h.CommandID)).SaveToQueue) { _sendQueue.Enqueue(msg, true); } else { _sendQueue.Enqueue(msg, false); } } else { // Kullanıcı tarafı _sendQueue.Enqueue(msg, true); } }
// private ACKList _ackList = new ACKList(); private bool LoginAndWaitForAck(Message message) { Log("Login: "******"Login cevap gelmedi: timeout CommandID: " + message.GetMessageHeader().CommandID); DisposeSocket(); return false; } }
private bool SendAndWaitForAck(Message message) { Log("SendAndWaitForACK2: " + message.GetMessageHeader().CommandID + "," + message.GetMessageHeader().GetMsgID().ToString()); // Gönderilen mesaj keep-alive ise onu bekle, aksi her durumda ACK2 bekle if (message.GetMessageHeader().CommandID == KEEP_ALIVE) { _waitFor = new PredefinedCommands.KeepAlive(); } else { _waitFor = PredefinedCommands.Ack2.CreateAck2(message.GetMessageHeader()); } try { // Gönder _socket.Send(message.Data, message.Size, SocketFlags.None); } catch { DisconnectInternal(); return false; } // Bekle if (_waitForEvent.WaitOne(90000, false)) { return true; } else { DisconnectInternal(); return false; } }
public void Send(Message m) { MessageHeader h = m.GetMessageHeader(); // Sunucu tarafı ise if (h.isServerSideCommand()) { // Sunucu tarafı ama disk'e yaz işaretli. if (MessageAttribute.GetMessageAttribute(Message.GetTypeFromID(h.CommandID)).SaveToQueue) { _queue.Enqueue(m, true); } else { _queue.Enqueue(m, false); } } else { // Kullanıcı tarafı _queue.Enqueue(m, true); } }
private void AddToSendQueue(Message msg, bool writeToDisk) { MessageHeader header = msg.GetMessageHeader(); UniqueID uid = header.GetMsgID(); string filename = Path.Combine(_settings.SentFolder, uid.ToString() + ".msg"); // Sunucu tarafını diske yazma. if ((msg.GetMessageHeader().CommandID == 23) || // Delete ise kaydet disk'e writeToDisk && msg.GetMessageHeader().CommandID >= 1024) { FileStream fs = File.Create(filename); fs.Write(msg.Data, 0, msg.Size); fs.Close(); } _list.Enqueue(msg); }
public void Send(Message msg) { AddToSendQueue(msg, true); }
public static void SaveToFile(Message m, string filename) { FileStream fs = new FileStream(filename, FileMode.Create); fs.Write(m.Data, 0, m.Size); fs.Close(); }