/** * 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); }
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(); }
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(); }
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; }
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; }
public HubSocket(NodePeer p, Socket c, G2PacketReader packetReader) : this(p,c) { this.Reader = packetReader; }
public HubSocket(NodePeer p, Socket c, G2PacketReader packetReader) : this(p, c) { this.Reader = packetReader; }
/** * 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; }