Dwarrowdelf.TcpConnection.Send C# (CSharp) Method

Send() public method

public Send ( Message msg ) : void
msg Message
return void
		public void Send(Message msg)
		{
			if (m_socket.Connected == false)
			{
				trace.TraceVerbose("[TX] socket not connected, skipping send");
				return;
			}

			try
			{
				lock (m_sendLock)
				{
					trace.TraceVerbose("[TX] sending {0}", msg.GetType().Name);

					var stream = m_netStream;

					int len = stream.SentBytes;

					NetSerializer.Primitives.WritePrimitive(stream, MAGIC);

					Serializer.Serialize(stream, msg);

					stream.Flush();

					len = stream.SentBytes - len;

					trace.TraceVerbose("[TX] sent {0} bytes", len);

					if (m_netStatCollector != null)
						m_netStatCollector.OnMessageSent(msg.GetType(), len);
				}
			}
			catch (SocketException e)
			{
				var error = e.SocketErrorCode;

				trace.TraceError("[TX]: socket error {0}", error);
			}
		}