예제 #1
0
        protected override void CloseAndSend(BinaryWriter request, uint lengthPos)
        {
            if (UseV100Plus)
            {
                request.Seek((int)lengthPos, SeekOrigin.Begin);
                request.Write(IPAddress.HostToNetworkOrder((int)(request.BaseStream.Length - lengthPos - sizeof(int))));
            }

            request.Seek(0, SeekOrigin.Begin);

            var buf = new MemoryStream();

            request.BaseStream.CopyTo(buf);
            SocketTransport.Send(new EMessage(buf.ToArray()));
        }
예제 #2
0
        void IEClientMsgSink.ServerVersion(int version, string time)
        {
            base.ServerVersion = version;

            if (!UseV100Plus)
            {
                if (!CheckServerVersion(MinServerVer.MinVersion, ""))
                {
                    ReportUpdateTws("");
                    return;
                }
            }
            else if (ServerVersion < Constants.MinVersion || ServerVersion > Constants.MaxVersion)
            {
                Wrapper.Error(ClientId, EClientErrors.UNSUPPORTED_VERSION.Code, EClientErrors.UNSUPPORTED_VERSION.Message);
                return;
            }

            if (ServerVersion >= 3)
            {
                if (ServerVersion < MinServerVer.Linking)
                {
                    var buf = new List <byte>();

                    buf.AddRange(Encoding.UTF8.GetBytes(ClientId.ToString()));
                    buf.Add(Constants.Eol);
                    SocketTransport.Send(new EMessage(buf.ToArray()));
                }
            }

            ServerTime  = time;
            IsConnected = true;

            if (!AsyncEConnect)
            {
                StartApi();
            }
        }
 public void SendWithSwitcher()
 {
     _transportSwitched.Send(MetricName);
 }
 public void Send()
 {
     _transport.Send(MetricName);
 }