Пример #1
0
 public IoClient(int pid, String ip, int port, IoHeader header)
 {
     mPID     = pid;
     mHeader  = header;
     mAddress = IPAddress.Parse(ip);
     mPort    = port;
 }
Пример #2
0
 public IoSerial(int pid, SerialPort sp, IoHeader header)
 {
     mPID    = pid;
     mHeader = header;
     mSerialPort.PortName = sp.PortName;
     mSerialPort.BaudRate = sp.BaudRate;
     mSerialPort.Parity   = sp.Parity;
     mSerialPort.DataBits = sp.DataBits;
     mSerialPort.StopBits = sp.StopBits;
 }
Пример #3
0
        public void SessionOpened(IoHeader header)
        {
            Log.Out("SessionOpened," + header.ToString());
            int      pid  = header.GetPID();
            String   key  = GetNodeKey(pid);
            TreeNode node = treeConnect.Nodes[key];

            if (node == null)
            {
                node     = treeConnect.Nodes.Add(key, header.ToString());
                node.Tag = pid;
            }
        }
Пример #4
0
        /// <summary>
        /// 转发数据
        /// </summary>
        /// <param name="id"></param>
        /// <param name="buffer"></param>
        public void RelayData(int id, byte[] buffer)
        {
            IoHeader   header = null;
            List <int> ids    = new List <int>();

            if (mRelays.TryGetValue(id, out ids))
            {
                foreach (int item in ids)
                {
                    if (mHeaders.TryGetValue(item, out header))
                    {
                        header.WriteData(buffer);
                    }
                }
            }
        }
Пример #5
0
        public void HandlePacket()
        {
            IoHeader       ioHeader       = (IoHeader)_pr.ReadUshort();
            StandardHeader standardHeader = (StandardHeader)_pr.ReadUshort();

            switch (standardHeader)
            {
            case StandardHeader.Guid:
                Global.Guid = _pr.ReadGuid();
                break;

            case StandardHeader.Ping:
            {
                if (ioHeader == IoHeader.Send)
                {
                    //Subtracts the PingTime from the current time to get the Ping in ms.
                    Global.Ping = (ushort)DateTime.UtcNow.Subtract(Global.PingTime).Milliseconds;
                }
                break;
            }

            case StandardHeader.Country:
            {
                if (ioHeader == IoHeader.Request)
                {
                    if (Global.Country == null)
                    {
                        object obj = new object();

                        string countryName = new WebClient().DownloadString("http://api.hostip.info/country.php");

                        Global.Country = countryName;
                    }

                    var s = new Sender();
                    _client.ClientSend(s.SendCountry(Global.Country));
                }


                break;
            }
            }
        }
Пример #6
0
 internal IoAcceptState(IoHeader header, TcpListener tcpListener, int bufferSize)
 {
     mBufferSize  = bufferSize;
     mHeader      = header;
     mTcpListener = tcpListener;
 }
Пример #7
0
 public IoState(IoHeader header, int bufferSize)
 {
     mReadBuffer = new byte[bufferSize];
     mHeader     = header;
     mSID        = System.Threading.Interlocked.Increment(ref GID);
 }
Пример #8
0
 public void SessionOpened(IoHeader header)
 {
     throw new NotImplementedException();
 }
Пример #9
0
 public IoClientState(IoHeader header, int bufferSize, TcpClient tcpClient) : base(header, bufferSize)
 {
     mTcpClient = tcpClient;
     mAddress   = mTcpClient.Client.RemoteEndPoint.ToString();
 }
Пример #10
0
        public void AddHeader(IoHeader header)
        {
            int id = header.GetPID();

            mHeaders[id] = header;
        }
Пример #11
0
 public IoSerialState(IoHeader header, Stream stream, int bufferSize, SerialPort serialPort) : base(header, bufferSize)
 {
     this.SetStream(stream);
     mSerialPort = serialPort;
 }
Пример #12
0
 public IoSerialState(IoHeader header, Stream stream, int bufferSize) : base(header, bufferSize)
 {
     this.SetStream(stream);
 }