private void UpdatePeers() { int id; string[] listsPeer; string[] peers; string msg = ""; string ris = ""; CPeer receivedPeer; foreach (CPeer p in Peers) { try { id = p.SendRequest(new CMessage(EMessageType.Request, ERequestType.UpdPeers)); msg = p.ReceiveData(id, 5000).Data; ris += msg + "/"; } catch { if (Program.DEBUG) { CIO.DebugOut("Nessuna risposta da " + p.IP + " durante la richiesta dei peer." + "Disconnessione da " + p.IP); } p.Disconnect(); } } ris = ris.TrimEnd('/'); if (ris != "") { string publicIp = CServer.GetPublicIPAddress(); string localIp = CServer.GetLocalIPAddress(); listsPeer = ris.Split('/'); foreach (string l in listsPeer) { peers = l.Split(';'); foreach (string rp in peers) { receivedPeer = CPeer.Deserialize(rp); if (!(receivedPeer.IP == publicIp || receivedPeer.IP == localIp)) { Insert(receivedPeer); } } } } }
private byte[] Receive() { byte[] res = CServer.ReceiveData(mSocket); LastCommunication = DateTime.Now; return(res); }
//TODO Criptare le comunicazioni private void SendData(byte[] Msg) { CServer.SendData(mSocket, Msg); }