コード例 #1
0
ファイル: G2BrowseSearch.cs プロジェクト: nikkolasg/gnutella2
        /**
         * Read the response header to see if there are packets
         * sometimes , browsable packet is present but servent has disactivated for G2 network
         * (shaeraza)
         * return true if servent will stream g2packets
         * return false if not (html code listing neighbours / or nothing)
         * */
        public bool ReadResponseHeader(TCPConnection con)
        {
            ByteBuffer resp = con.Read();

            if (resp == null)
            {
                return(false);
            }
            string text = BinaryUtils.getStringFromBytes(resp.Bytes, (int)resp.DataOffset);

            string sequence = HttpHeader.nl + HttpHeader.nl;

            string[] splitter = { sequence };
            string[] header   = text.Split(splitter, StringSplitOptions.RemoveEmptyEntries);
            if (header.Length < 2)
            {
                return(false);
            }
            // check if the http header is OK i.e. will the servent stream g2 packets ?
            if (!ParseBrowsingResponse(header[0]))
            {
                return(false);
            }

            // remove the http header part from the buffer
            int dataOffset = text.IndexOf(sequence) + sequence.Length;

            resp.Dequeue(dataOffset);
            // put available data into the reader
            reader = new G2PacketReader(this.Peer);
            reader.Read(resp);
            return(true);
        }
コード例 #2
0
ファイル: HubSocket.cs プロジェクト: nikkolasg/gnutella2
 public HubSocket(NodePeer p,Socket c)
 {
     this.peer = p;
     this.sock = c;
     this.stream = new NetworkStream (c, true);
     SetupSocketOptions ();
     this.Reader = new G2PacketReader (p);
     this.shouldStop_ = false;
     Receiver = new Thread (new ThreadStart (ReceiveThread));
     Sender = new Thread (new ThreadStart (SendThread));
     Receiver.Name = "HubSocket Receiver " + p.Address.ToString();
     Sender.Name = "HubSocket Sender " + p.Address.ToString();
 }
コード例 #3
0
        private const int JOIN_WAIT_TIME = 50;         // ms

        public HubSocket(NodePeer p, Socket c)
        {
            this.peer   = p;
            this.sock   = c;
            this.stream = new NetworkStream(c, true);
            SetupSocketOptions();
            this.Reader      = new G2PacketReader(p);
            this.shouldStop_ = false;
            Receiver         = new Thread(new ThreadStart(ReceiveThread));
            Sender           = new Thread(new ThreadStart(SendThread));
            Receiver.Name    = "HubSocket Receiver " + p.Address.ToString();
            Sender.Name      = "HubSocket Sender " + p.Address.ToString();
        }
コード例 #4
0
ファイル: G2BrowseSearch.cs プロジェクト: nikkolasg/gnutella2
        public G2BrowseSearch(Peer peerToBrowse,SearchResult results)
        {
            referenceToPeer = peerToBrowse;
            referenceToSearchResults = results;

            IPAddress add = null;
            bool succ = IPAddress.TryParse(peerToBrowse.Ip, out add);

            Peer = new NodePeer(new NodeAddress(add, (ushort)peerToBrowse.Port),false);
            Peer.isHub = false;

            packetResults = new List<G2PacketQH2>();

            reader = null;
        }
コード例 #5
0
ファイル: G2BrowseSearch.cs プロジェクト: nikkolasg/gnutella2
        private SearchResult referenceToSearchResults;        // g2 search results
        public G2BrowseSearch(Peer peerToBrowse, SearchResult results)
        {
            referenceToPeer          = peerToBrowse;
            referenceToSearchResults = results;

            IPAddress add  = null;
            bool      succ = IPAddress.TryParse(peerToBrowse.Ip, out add);

            Peer       = new NodePeer(new NodeAddress(add, (ushort)peerToBrowse.Port), false);
            Peer.isHub = false;

            packetResults = new List <G2PacketQH2>();


            reader = null;
        }
コード例 #6
0
ファイル: HubSocket.cs プロジェクト: nikkolasg/gnutella2
 public HubSocket(NodePeer p, Socket c, G2PacketReader packetReader)
     : this(p,c)
 {
     this.Reader = packetReader;
 }
コード例 #7
0
 public HubSocket(NodePeer p, Socket c, G2PacketReader packetReader) : this(p, c)
 {
     this.Reader = packetReader;
 }
コード例 #8
0
ファイル: G2BrowseSearch.cs プロジェクト: nikkolasg/gnutella2
        /**
         * Read the response header to see if there are packets
         * sometimes , browsable packet is present but servent has disactivated for G2 network
         * (shaeraza)
         * return true if servent will stream g2packets
         * return false if not (html code listing neighbours / or nothing)
         * */
        public bool ReadResponseHeader(TCPConnection con)
        {
            ByteBuffer resp = con.Read();
            if (resp == null) return false;
            string text = BinaryUtils.getStringFromBytes(resp.Bytes,(int)resp.DataOffset);

            string sequence = HttpHeader.nl + HttpHeader.nl;
            string[] splitter = {sequence};
            string[] header = text.Split(splitter,StringSplitOptions.RemoveEmptyEntries);
            if (header.Length < 2) return false;
            // check if the http header is OK i.e. will the servent stream g2 packets ?
            if (!ParseBrowsingResponse(header[0]))
            {
                return false;
            }

            // remove the http header part from the buffer
            int dataOffset = text.IndexOf(sequence) + sequence.Length;
            resp.Dequeue(dataOffset);
            // put available data into the reader
            reader = new G2PacketReader(this.Peer);
            reader.Read(resp);
            return true;
        }