Exemple #1
0
        // Handling the routing table request
        public void handleRequestClosest(IPEndPoint remotePoint, int sender, int target)
        {
            PeerInfo     targetInfo = askForClosestPeer(sender, target);
            UDPResponder responder  = new UDPResponder(remotePoint, remotePoint.Port);

            responder.sendClosest(target, targetInfo);
        }
Exemple #2
0
        public void onReceiveClosest(PeerInfo pInfo)
        {
            if (mCurrentTargetGUID != pInfo.getGUID && mPreviousGUID != pInfo.getGUID)
            {
                mPreviousGUID = pInfo.getGUID;

                IPEndPoint   remotePoint = new IPEndPoint(IPAddress.Parse(pInfo.getIP()), pInfo.getPORT());
                UDPResponder responder   = new UDPResponder(remotePoint, mOwner.getRoutingTable.MyInfo.getPORT());
                responder.sendRequestClosest(mOwner.getGUID, mCurrentTargetGUID);
            }
            else
            {
                if (mCurrentTargetGUID != pInfo.getGUID)
                {
                    //IPEndPoint remotePoint = new IPEndPoint(IPAddress.Parse(pInfo.getIP()), pInfo.getPORT());
                    //UDPResponder responder = new UDPResponder(remotePoint, mOwner.getRoutingTable.MyInfo.getPORT());
                    //responder.sendRequestJoin(mCurrentTargetGUID, mOwner.getRoutingTable.MyInfo);
                    mOwner.addPeerInfo(pInfo);
                }
                else
                {
                    //IPEndPoint remotePoint = new IPEndPoint(IPAddress.Parse(pInfo.getIP()), pInfo.getPORT());
                    //UDPResponder responder = new UDPResponder(remotePoint, mOwner.getRoutingTable.MyInfo.getPORT());
                    //responder.sendRequestJoin(mOwner.getRoutingTable.MyInfo.getGUID, mOwner.getRoutingTable.MyInfo);
                    mOwner.addPeerInfo(pInfo);
                }
            }
        }
Exemple #3
0
        private void sendLeaveRequest(PeerInfo pInfo)
        {
            listener.closeSocket();
            IPEndPoint   remotePoint = new IPEndPoint(IPAddress.Parse(pInfo.getIP()), pInfo.getPORT());
            UDPResponder responder   = new UDPResponder(remotePoint, myInfo.getPORT());

            responder.sendRequestLeave(myInfo.getGUID);
        }
Exemple #4
0
        private void btnSendFile_Click(object sender, EventArgs e)
        {
            string guid;

            guid = listRoutingTable.SelectedValue.ToString();
            Console.WriteLine(guid);
            OpenFileDialog ofd = new OpenFileDialog();
            DialogResult   dr  = ofd.ShowDialog();

            if (dr != DialogResult.OK)
            {
                // no file was selected
                return;
            }

            string fileFullPath = ofd.FileName;
            string fileName     = Path.GetFileName(fileFullPath);

            // get ip and port from selected peer in listbox
            int index = listRoutingTable.SelectedIndex;

            // find the guid of the peer selected
            //string selectedPeer = listRoutingTable.Items[index].ToString();

            if (index == -1)
            {
                toolStatus.Text = "Error: No peer selected!";
                return;
            }

            Dictionary <int, PeerInfo> peerDictionary = peer.getRoutingTable.getPeers();


            // FIX FOR MONDAY
            // Will loop through peerDictonary and send to the first one it finds..

            for (int i = 0; i < 12; i++)
            {
                if (peerDictionary.ContainsKey(i) && peer.getGUID != i)
                {
                    PeerInfo receivingPeer = peerDictionary[i];
                    toolStatus.Text = String.Format("Sending file \"{0}\" to peer guid {1}, ip {2}:{3}", fileName, receivingPeer.getGUID, receivingPeer.getIP(), receivingPeer.getPORT());

                    IPAddress RecevingIp = IPAddress.Parse(receivingPeer.getIP());

                    //// Send file info
                    //// create end point
                    IPEndPoint   remotePoint = new IPEndPoint(RecevingIp, receivingPeer.getPORT());
                    UDPResponder udpResponse = new UDPResponder(remotePoint, listenPort);
                    udpResponse.sendFileInfo(fileFullPath);

                    return;
                }
            }
        }
Exemple #5
0
        /// <summary>
        /// Button Events
        /// </summary>

        //Ping Button
        private void buttonPing_Click(object sender, EventArgs e)
        {
            validateForm();

            // create end point
            IPEndPoint   remotePoint = new IPEndPoint(ip, remotePort);
            UDPResponder udpResponse = new UDPResponder(remotePoint, listenPort);

            udpResponse.sendPing();

            toolStatus.Text = "Status: Sent ping";
        }
Exemple #6
0
        public void init(int guid, string ip, int port)
        {
            myInfo = new PeerInfo(guid, ip, port);

            // Create UDP listen and add events
            listener = new UDPListener(port);
            subscribeToListener(listener);

            // Create Routing Table and adding boot peer
            routingTable = new RoutingTable(myInfo);
            routingTable.add(bootPeer);

            listener.setRoutingtable = routingTable;

            // Create EndPoint
            IPEndPoint remotePoint = new IPEndPoint(IPAddress.Parse(bootPeer.getIP()), bootPeer.getPORT());
            // Sending routing table request
            UDPResponder responder = new UDPResponder(remotePoint, port);

            responder.sendRequestRoutingTable();
        }
Exemple #7
0
        public void addPeerInfo(PeerInfo pInfo)
        {
            List <int> targets = routingTable.getTargetGUIDs(myInfo.getGUID);

            if (targets.Contains(pInfo.getGUID))
            {
                routingTable.add(pInfo);
                IPEndPoint   remotePoint = new IPEndPoint(IPAddress.Parse(pInfo.getIP()), pInfo.getPORT());
                UDPResponder responder   = new UDPResponder(remotePoint, myInfo.getPORT());
                responder.sendRequestJoin(1, myInfo);
            }
            else if (!routingTable.containsValue(pInfo))
            {
                bool added = routingTable.addIfCloser(pInfo);
                if (added)
                {
                    IPEndPoint   remotePoint = new IPEndPoint(IPAddress.Parse(pInfo.getIP()), pInfo.getPORT());
                    UDPResponder responder   = new UDPResponder(remotePoint, myInfo.getPORT());
                    responder.sendRequestJoin(1, myInfo);
                }
            }
            routingTable.cleanTable(myInfo.getGUID);
            updateTable();
        }
Exemple #8
0
        // Handling the routing table request
        public void handleRequestTable(IPEndPoint remotePoint)
        {
            UDPResponder responder = new UDPResponder(remotePoint, remotePoint.Port);

            responder.sendRoutingTable(routingTable);
        }