예제 #1
0
 /// Send Error
 public static void Error(PeerSocket peer, string message)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "error";
     xmlRequest.BodyText = message;
     peer.Send(xmlRequest.GenerateXml());
 }
예제 #2
0
        /// Send Error
        public static void Error(PeerSocket peer, string message)
        {
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "error";
            xmlRequest.BodyText = message;
            peer.Send(xmlRequest.GenerateXml());
        }
예제 #3
0
        /// Request File By ID
        public static void RequestFile(PeerSocket peer, ulong id)
        {
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "get";
            xmlRequest.Attributes.Add("what", "file-id");
            xmlRequest.Attributes.Add("id", id);
            peer.Send(xmlRequest.GenerateXml());
        }
예제 #4
0
        /// Request User's Folder
        public static void RequestFolder(PeerSocket peer, string path)
        {
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "get";
            xmlRequest.Attributes.Add("what", "file-list");
            xmlRequest.Attributes.Add("path", path);
            peer.Send(xmlRequest.GenerateXml());
        }
예제 #5
0
        /// Request File
        public static void RequestFile(PeerSocket peer, string path)
        {
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "get";
            xmlRequest.BodyText = path;
            xmlRequest.Attributes.Add("what", "file");
            peer.Send(xmlRequest.GenerateXml());
        }
예제 #6
0
        /// Send My File List
        public static void SendFileList(PeerSocket peer, string path)
        {
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd";
            xmlRequest.BodyText = GetMyFolder(path);
            xmlRequest.Attributes.Add("what", "folder-list");
            xmlRequest.Attributes.Add("path", path);
            peer.Send(xmlRequest.GenerateXml());
        }
예제 #7
0
        // ============================================
        // PRIVATE Methods
        // ============================================
        private static void SendFileAbort(PeerSocket peer, string fname, long fsize)
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "recv-abort";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", fname);

            // Send To Peer
            peer.Send(xmlRequest.GenerateXml());
        }
예제 #8
0
        // ============================================
        // PUBLIC Events
        // ============================================
        // ============================================
        // PUBLIC Methods
        // ============================================
        /// Send Login
        public static void Login(PeerSocket peer, UserInfo userInfo)
        {
            XmlRequest xmlRequest = new XmlRequest();
            xmlRequest.FirstTag = "login";
            xmlRequest.Attributes.Add("name", userInfo.Name);
            xmlRequest.Attributes.Add("secure", userInfo.SecureAuthentication.ToString());

            string magic = Protocol.Login.GenerateMagic(peer);
            xmlRequest.Attributes.Add("magic", magic);

            peer.Send(xmlRequest.GenerateXml());
        }
예제 #9
0
        /// Accept File Request
        public static void AcceptFile(PeerSocket peer, string path)
        {
            string name = Path.GetFileName(path);

            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "accept";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("path", path);
            xmlRequest.Attributes.Add("name", name);

            peer.Send(xmlRequest.GenerateXml());
        }
예제 #10
0
        // ============================================
        // PUBLIC STATIC Methods (Commands)
        // ============================================
        /// Send Login
        public static void Login(PeerSocket peer, UserInfo userInfo)
        {
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "login";
            xmlRequest.Attributes.Add("name", userInfo.Name);
            xmlRequest.Attributes.Add("secure", userInfo.SecureAuthentication.ToString());

            string magic = Protocol.Login.GenerateMagic(peer);

            xmlRequest.Attributes.Add("magic", magic);

            peer.Send(xmlRequest.GenerateXml());
        }
예제 #11
0
        /// Ask Send File
        public static void AskSendFile(PeerSocket peer, string path)
        {
            FileInfo fileInfo = new FileInfo(path);

            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "ask";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("path", path);
            xmlRequest.Attributes.Add("name", fileInfo.Name);
            xmlRequest.Attributes.Add("size", fileInfo.Length);

            peer.Send(xmlRequest.GenerateXml());
        }
예제 #12
0
        /// <snd-end what='file' id='10 />
        public void SendFileEnd()
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd-end";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("id", Id);

            // Send To Peer
            if (Peer != null)
            {
                Peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #13
0
        private void SendFileStart()
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd-start";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", this.fileName);
            xmlRequest.Attributes.Add("size", this.fileSize);

            // Send To Peer
            if (this.peer != null)
            {
                this.peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #14
0
        // ============================================
        // PUBLIC Methods
        // ============================================
        /// Send Ask Message to User (Do You Want This?)
        public void Ask()
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "ask";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("id", Id);
            xmlRequest.Attributes.Add("size", Size);
            xmlRequest.Attributes.Add("name", Name);

            // Send To Peer
            if (Peer != null)
            {
                Peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #15
0
        /// <snd-abort what='file' id='10'>Error Message</abort>
        public void AbortSendFile(string msgerror)
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd-abort";
            if (msgerror != null)
            {
                xmlRequest.BodyText = "Sending Error: " + msgerror;
            }
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("id", Id);

            // Send To Peer
            if (Peer != null)
            {
                Peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #16
0
        private void SendFileEnd(string msgerror)
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd-end";
            if (msgerror != null)
            {
                xmlRequest.BodyText = "Sending Error: " + msgerror;
            }
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", this.fileName);
            xmlRequest.Attributes.Add("size", this.fileSize);

            // Send To Peer
            if (this.peer != null)
            {
                this.peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #17
0
        // ============================================
        // PUBLIC (Protocol) Methods
        // ============================================
        /// <snd what='file' id='10' part='0'>...</snd>
        public void SendFilePart(byte[] data, uint npart)
        {
            // Base64 Convert
            string b64data = Convert.ToBase64String(data);

            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd";
            xmlRequest.BodyText = b64data;
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("id", Id);
            xmlRequest.Attributes.Add("part", npart);

            // Add md5sum
            xmlRequest.AddAttributeMd5Sum();

            // Send To Peer
            if (Peer != null)
            {
                Peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #18
0
        private void SendFilePart(byte[] data, uint npart)
        {
            // Base64 Convert
            string b64data = Convert.ToBase64String(data);

            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();

            xmlRequest.FirstTag = "snd";
            xmlRequest.BodyText = b64data;
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", this.fileName);
            xmlRequest.Attributes.Add("size", this.fileSize);
            xmlRequest.Attributes.Add("part", npart);

            // Add md5sum
            xmlRequest.AddAttributeMd5Sum();

            // Send To Peer
            if (this.peer != null)
            {
                this.peer.Send(xmlRequest.GenerateXml());
            }
        }
예제 #19
0
 /// Request File By Path
 public static void RequestFile(PeerSocket peer, string path)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "get";
     xmlRequest.Attributes.Add("what", "file");
     xmlRequest.Attributes.Add("path", path);
     peer.Send(xmlRequest.GenerateXml());
 }
예제 #20
0
 /// Request File By ID
 public static void RequestFile(PeerSocket peer, ulong id)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "get";
     xmlRequest.Attributes.Add("what", "file-id");
     xmlRequest.Attributes.Add("id", id);
     peer.Send(xmlRequest.GenerateXml());
 }
예제 #21
0
 private static void SendError(PeerSocket peer, string error)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "msg";
     xmlRequest.BodyText = error;
     xmlRequest.Attributes.Add("type", "error");
     if (peer != null) peer.Send(xmlRequest.GenerateXml());
 }
예제 #22
0
 private static void SendStatus(PeerSocket peer, string status)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "msg";
     xmlRequest.BodyText = status;
     xmlRequest.Attributes.Add("type", "status");
     if (peer != null) peer.Send(xmlRequest.GenerateXml());
 }
 // ============================================
 // PRIVATE Methods
 // ============================================
 private void RequestPeerList(PeerSocket peer)
 {
     XmlRequest xml = new XmlRequest();
     xml.FirstTag = "get";
     xml.Attributes.Add("what", "peerlist");
     peer.Send(xml.GenerateXml());
 }
예제 #24
0
        private void SendFileStart()
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();
            xmlRequest.FirstTag = "snd-start";
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", this.fileName);
            xmlRequest.Attributes.Add("size", this.fileSize);

            // Send To Peer
            if (this.peer != null) this.peer.Send(xmlRequest.GenerateXml());
        }
예제 #25
0
        private void SendFilePart(byte[] data, uint npart)
        {
            // Base64 Convert
            string b64data = Convert.ToBase64String(data);

            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();
            xmlRequest.FirstTag = "snd";
            xmlRequest.BodyText = b64data;
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", this.fileName);
            xmlRequest.Attributes.Add("size", this.fileSize);
            xmlRequest.Attributes.Add("part", npart);

            // Add md5sum
            xmlRequest.AddAttributeMd5Sum();

            // Send To Peer
            if (this.peer != null) this.peer.Send(xmlRequest.GenerateXml());
        }
예제 #26
0
        private void SendFileEnd(string msgerror)
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();
            xmlRequest.FirstTag = "snd-end";
            if (msgerror != null)
                xmlRequest.BodyText = "Sending Error: " + msgerror;
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("name", this.fileName);
            xmlRequest.Attributes.Add("size", this.fileSize);

            // Send To Peer
            if (this.peer != null) this.peer.Send(xmlRequest.GenerateXml());
        }
예제 #27
0
        public void SendImageThumb(PeerSocket peer, string filePath)
        {
            string imgThumb = GenerateImageThumb(filePath);
            if (imgThumb == null) return;

            // Generate Xml Request
            XmlRequest xmlRequest = new XmlRequest();
            xmlRequest.FirstTag = "snd";
            xmlRequest.BodyText = imgThumb;
            xmlRequest.Attributes.Add("what", "imgthumb");
            xmlRequest.Attributes.Add("path", filePath);
            peer.Send(xmlRequest.GenerateXml());
        }
 private void SendPeerList(PeerSocket peer)
 {
     XmlRequest xml = new XmlRequest();
     xml.FirstTag = "peerlist";
     xml.BodyText = GeneratePeerList();
     peer.Send(xml.GenerateXml());
 }
예제 #29
0
 /// Accept File
 public static void AcceptFile(PeerSocket peer, XmlRequest xmlAsk)
 {
     xmlAsk.FirstTag = "accept";
     peer.Send(xmlAsk.GenerateXml());
 }
예제 #30
0
 public void RequestImage(UserInfo userInfo, string filePath)
 {
     // Get Peer From UserInfo
     PeerSocket peer = P2PManager.KnownPeers[userInfo] as PeerSocket;
     if (peer != null) {
         // Generate Xml Request
         XmlRequest xmlRequest = new XmlRequest();
         xmlRequest.FirstTag = "get";
         xmlRequest.BodyText = filePath;
         xmlRequest.Attributes.Add("what", "imgthumb");
         peer.Send(xmlRequest.GenerateXml());
     } else {
         LoadImage(userInfo, filePath);
     }
 }
예제 #31
0
 private static void SendMessage(PeerSocket peer, string message)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "msg";
     xmlRequest.BodyText = message;
     if (peer != null) peer.Send(xmlRequest.GenerateXml());
 }
예제 #32
0
        // ============================================
        // PRIVATE Methods
        // ============================================
        /// <recv-abort what='file' id='10' />
        /// <recv-abort what='file' id='10'>Error Message</abort>
        private void AbortRecvFile(string msgerror)
        {
            // XmlRequest
            XmlRequest xmlRequest = new XmlRequest();
            xmlRequest.FirstTag = "recv-abort";
            if (msgerror != null)
                xmlRequest.BodyText = "Sending Error: " + msgerror;
            xmlRequest.Attributes.Add("what", "file");
            xmlRequest.Attributes.Add("id", Id);

            // Send To Peer
            if (Peer != null) Peer.Send(xmlRequest.GenerateXml());
        }
예제 #33
0
 /// Send Folder's File List
 public static void SendFileList(PeerSocket peer, string path)
 {
     XmlRequest xmlRequest = new XmlRequest();
     xmlRequest.FirstTag = "snd";
     xmlRequest.Attributes.Add("what", "file-list");
     xmlRequest.Attributes.Add("path", path);
     xmlRequest.BodyText = FolderFileList(path);
     peer.Send(xmlRequest.GenerateXml());
 }