예제 #1
0
    public void RegistPeer(IPeerToPeer peer)
    {
        Debug.WriteLine("! Register(IPeer)");

        if (null == sponsor)
        {
            sponsor = new PeerDiscoverySponsor(this);
            ILease lease = (ILease)GetLifetimeService();
            lease.Register(sponsor);
        }

        if (false == peers.ContainsKey(peer))
        {
            peers[peer] = DateTime.Now;
        }
    }
예제 #2
0
 public void UnregistPeer(IPeerToPeer peer)
 {
     Console.WriteLine("Peer Desregistado: " + peer.ToString());
     lock (this)
     {
         peers.Remove(peer);
     }
 }
예제 #3
0
    public void RenewTime(IPeerToPeer peer)
    {
        Debug.WriteLine(String.Format("! RenewTime() : {0}", DateTime.Now));

        if (false != peers.ContainsKey(peer))
        {
            peers[peer] = DateTime.Now;
        }
    }
예제 #4
0
파일: IPeer.cs 프로젝트: davidajulio/hx
 public PeerFileInfo(string filename, string newFilename, long size, IPeerToPeer peer)
 {
     this.newFilename = newFilename;
     this.filename = filename;
     this.size = size;
     this.peer = peer;
 }
예제 #5
0
파일: Peer.cs 프로젝트: davidajulio/hx
 public void NewFile(IPeerToPeer source, NewFileWarningEventArgs args)
 {
     if (null != toUserFileWarningDelegate)
     {
         toUserFileWarningDelegate(source, args);
     }
 }
예제 #6
0
파일: Peer.cs 프로젝트: davidajulio/hx
 void IPeerToUser.RegisterOnPeer(IPeerToPeer peer)
 {
     MessageBox.Show("going to register on peer");
     peer.NewFileWarningEvent += new NewFileWarningEventHandler(NewFile);
 }
예제 #7
0
파일: Peer.cs 프로젝트: davidajulio/hx
 void IPeerToUser.DownloadFile(string filename, string newFilename, IPeerToPeer peer)
 {
     using (FileStream remotedFileStream = peer.Download(filename))
     {
         byte[] byteArray = new byte[1024*1024];
         int bytesRead = 0;
         using (FileStream newFileStream = File.Create(newFilename))
         {
             bytesRead = remotedFileStream.Read(byteArray, 0, byteArray.Length);
             while (0 != bytesRead)
             {
                 newFileBlockReceivedDelegate(filename);
                 newFileStream.Write(byteArray, 0, bytesRead);
                 bytesRead = remotedFileStream.Read(byteArray, 0, byteArray.Length);
             }
         }
     }
 }