コード例 #1
0
 public ProtoGram(ProtoCommand command, long start, long len, string uri)
 {
     Command   = command;
     Start     = start;
     Length    = len;
     UrlLength = (short)uri.Length;
     UrlData   = Encoding.UTF8.GetBytes(uri);
     Status    = ProtoStatus.Success;
 }
コード例 #2
0
ファイル: CatnapWebMgr.cs プロジェクト: catnap-group/Catnap
 public override void Init()
 {
     if (Initialized)
     {
         return;
     }
     m_TimeOutInterval = 30.0f;
     ProtoCommand.Register(this);
     base.Init();
 }
コード例 #3
0
ファイル: Agent.cs プロジェクト: gonsovsky/agentProto
        public object Cmd(ProtoCommand cmd, string uri, long start, long len, string file = "")
        {
            if (file == "")
            {
                file = uri;
            }
            var state = new AgentState(Config, Fs)
            {
                FileName = file,
                Gram     = new ProtoGram(cmd, start, len, uri)
            };

            try
            {
                var ipHostInfo = Dns.GetHostEntry(Config.Host);
                var ipAddress  = ipHostInfo.AddressList
                                 .First(ip => ip.AddressFamily == AddressFamily.InterNetwork);
                var remoteEp = new IPEndPoint(ipAddress, Config.Port);
                var client   = new Socket(ipAddress.AddressFamily,
                                          SocketType.Stream, ProtocolType.Tcp);
                state.WorkSocket = client;
                client.BeginConnect(remoteEp, ConnectCallback, state);
                ConnectDone.WaitOne();
                Send(state);
                SendDone.WaitOne();
                Receive(state);
                AllDone.WaitOne();
                if (state.Gram.Status == ProtoStatus.Success)
                {
                    return(Complete(state));
                }
                else
                {
                    throw new ApplicationException(state.Url);
                }
            }
            catch (Exception e)
            {
                Abort(state, e);
                return(null);
            }
        }
コード例 #4
0
 public void Post([FromBody] ProtoCommand command)
 {
     _context.Send(_appSettings.Value.Address, command.Address, command);
 }