예제 #1
0
def get(filename):
    print "Downloading file: " + str(filename)
    RxP.sendData(clientSocket, "GET: " + str(filename))
    response = RxP.receiveData(clientSocket)
    print "Received response: ", response
    #clientSocket.recieveData
    return
예제 #2
0
def test_4():
    client = RxP.createRxPSocket("localhost", 5000)
    server = RxP.createRxPSocket("localhost", 5001)
    RxP.listenForRxPConnections(server)
    RxP.connectToRxP(client, "localhost", 5001)
    RxP.sendData(client, "Hello")
    RxP.close(client)
예제 #3
0
def listenForServerRequests():
    print "Listening for server requests!"
    while(True):
        request = RxP.receiveData(serverSocket)
        if "GET" in str(request):
            print "GETTING a file"
            request = str(request).replace("GET: ", "")
            print "Getting file: ", request

        with open (request, "r") as myfile:
            data = myfile.read()

        RxP.sendData(serverSocket, data)
예제 #4
0
def terminate():
    print "Shutting down server"
    RxP.closeRxPSocket(serverSocket) 
    return
예제 #5
0
def main():
    # check for number of correct command line arguments
    if len(sys.argv) != 4:
        print ('Please enter arguments in the correct format: X A P' + 
            '\nX: The port number this server should bind to'+
            '\nA: The IP address of NetEmu' + 

            '\nP: The UDP port number of NetEmu ')
        sys.exit()

    # port number at which the FxA-Server's UDP socket should bind to
    try:
        portnumber = int(sys.argv[1])
    except:
        print 'Please enter a valid port number for Server (1025-65536)'
        sys.exit()

    ipaddress = sys.argv[2]

    try:
        emuportnumber = int(sys.argv[3])
    except:
        print 'Please enter a valid port number for NetEmu (1025-65536)'
        sys.exit()

    windowSize = 1

    # check for valid client port numbers
    if portnumber < 1025 or portnumber > 65536: 
        print 'Please enter a valid port number for client (1025-65536)'
        sys.exit()

    # Port number for client must be even
    if portnumber % 2 != 1:
        print 'Port number for server must be odd'
        sys.exit()

    # check for valid IP addresses
    try:
        inet_aton(ipaddress)
    except:
        if ipaddress != "localhost":
            print("Not a valid IP address")
            sys.exit()

    # check for valid NetEmu UDP port number
    if emuportnumber < 1025 or emuportnumber > 65536: 
        print 'Please enter a valid port number for NetEmu (1025-65536)'
        sys.exit()

    global emuportnumber



    # creating and binding rxp socket
    serverSocket = RxP.createRxPSocket(ipaddress, portnumber)
    global serverSocket
    incoming_connection = RxP.listenForRxPConnections(serverSocket)

    # After getting an incoming connection
    RxP.acceptRxPSocketConnection(serverSocket, incoming_connection)
    if RxP.isConnected(serverSocket):
        thread = threading.Thread(target=listenForServerRequests)
        thread.start()
        threads.append(thread)

    #the command loop
    while True:

        # have the user input a command and parse it
        command = raw_input('\nCommand: ').split(" ")
        # check for invalid command
        if len(command) > 2:
            print "Enter a valid command"
            continue

        #check for terminate
        if len(command) == 1:
            # terminate the server
            if command[0] == "terminate":
                terminate()

                for thread in threads:
                    thread.join()
                sys.exit()

                continue
            else:
                print "Please enter a valid command"
                continue
        #check for window
        elif len(command) == 2:
            #window
            if command[0] == "window":
                window(command[1])
                continue
            else:
                print "Please enter a valid command"
                continue
예제 #6
0
def test_basic_sending(is_client):
    if is_client:
        print "Testing basic connection as a client"
        client = RxP.createRxPSocket("localhost", 5000)
        RxP.connectToRxP(client, "localhost", 5001)
        RxP.sendData(client, "Hello, World!  This is a big test.   Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test T Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test TTest Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test TesThis is a big test.  Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test")

        RxP.closeRxPSocket(client)
    else:
        print "Testing basic connection as a server"
        server = RxP.createRxPSocket("localhost", 5001)
        connection_attempt_address = RxP.listenForRxPConnections(server)
        print("Receieved connection attempt from: ", connection_attempt_address)
        RxP.acceptRxPSocketConnection(server, connection_attempt_address)

        response = RxP.receiveData(server, 999999)
        print "Received data: ", response
 
        RxP.closeRxPSocket(server)
예제 #7
0
def test_basic_connection(is_client):
    if is_client:
        print "Testing basic connection as a client"
        client = RxP.createRxPSocket("localhost", 5000)
        RxP.connectToRxP(client, "localhost", 5001)
        time.sleep(3)
        RxP.closeRxPSocket(client)
    else:
        print "Testing basic connection as a server"
        server = RxP.createRxPSocket("localhost", 5001)
        connection_attempt_address = RxP.listenForRxPConnections(server)
        print("Receieved connection attempt from: ", connection_attempt_address)
        RxP.acceptRxPSocketConnection(server, connection_attempt_address)
        time.sleep(3)
        RxP.closeRxPSocket(server)
예제 #8
0
def test_create_socket():
    socket = RxP.createRxPSocket("localhost", 9998)

    RxP.closeRxPSocket(socket)
예제 #9
0
def main():

    rxpProtocol = None

    # Handling the argument
    arg = sys.argv
    if len(arg) < 3 or len(arg) > 4:
        print 'Invalid command. Please try again.'
        sys.exit()

    # pass the command line arguments
    try:
        clientPort = int(arg[1])
    except ValueError:
        print 'Invalid command. Please try again.'
        sys.exit()
    # validate
    if not 0 < clientPort < 65536:
        print 'Invalid port number. Please try again.'
        sys.exit()

    # Server IP address
    serverIP = arg[2]

    if not _validIP(serverIP):
        print 'IP address is not valid, please try again'
        sys.exit()

    # netEmu port number
    try:
        netEmuPort = int(arg[3])
    except ValueError:
        print 'Invalid command. Please try again.'
        sys.exit()
    # validate
    if not 0 < netEmuPort < 65536:
        print 'Invalid port number. Please try again.'
        sys.exit()

    # Dest. port number
    desPort = clientPort + 1

    log = "output-client.txt"

    clientProtocol = None
    sendThread = None

    connThread = None
    sThread = None

    #execute user's commend
    while True:
        time.sleep(.500)
        Sinput = raw_input("type connect - to establish connection \n"
                    + "get 'filename' - to download the file from server \n"
                    + "post 'filename' - to upload the file to server \n"
                    + "Window W - to change the window size \n"
                    + "disconnect - to close the connection\n"
                    + 'quit - to quit the application\n')
        if Sinput.__eq__("connect"):
            rxpProtocol = RxP(serverIP, netEmuPort, clientPort, desPort, log)
            clientProtocol = RecvThread(rxpProtocol)
            clientProtocol.start()
            rxpProtocol.connect()
        # get file form server
        elif "get" in Sinput:
            if rxpProtocol != None:
                s = Sinput.split()
                rxpProtocol.getFile(s[1])
        # post file form server
        elif "post" in Sinput:
            if rxpProtocol != None:
                s = Sinput.split()
                sendThread = SendThread(rxpProtocol, s[1])
                sendThread.start()
        # set the window size
        elif "window" in Sinput:
            if rxpProtocol != None:
                s = Sinput.split()
                try:
                    window = int(s[1])
                except ValueError:
                    print 'Invalid window size. Please try again.'
                    sys.exit()
                if not 0 < window < 50:
                    print 'Window size too big. Please try again.'
                    sys.exit()
                print "Set window size to " + str(window)
                rxpProtocol.setWindowSize(window)
        #close connection
        elif Sinput.__eq__("disconnect"):
            if rxpProtocol != None:
                rxpProtocol.close()
                clientProtocol.stop()
                rxpProtocol.socket.close()
                rxpProtocol = None
        elif Sinput.__eq__("quit"):
            if rxpProtocol:
                print 'disconnect before quit'
            else:
                break
예제 #10
0
def main():

    print ("Server Starts")

    # Handling the argument
    arg = sys.argv
    if len(arg) < 3 or len(arg) > 4:
        print 'Invalid command. Please try again.'
        sys.exit()

    log = "output-server.txt"

    #pass the command line arguments
    try:
        hostPort = int(arg[1])
    except ValueError:
        print 'Invalid command. Please try again.'
        sys.exit()
    # validate
    if not 0 < hostPort < 65536:
        print 'Invalid port number. Please try again.'
        sys.exit()

    #Server IP address
    serverIP = arg[2]
    # validate
    if not _validIP(serverIP):
        print 'IP address is not valid, please try again'
        sys.exit()

    # netEmu port number
    try:
        netEmuPort = int(arg[3])
    except ValueError:
        print 'Invalid command. Please try again.'
        sys.exit()
    # validate
    if not 0 < netEmuPort < 65536:
        print 'Invalid port number. Please try again.'
        sys.exit()

    # Dest. port number
    desPort = hostPort - 1

    rxpProtocol = RxP(serverIP, netEmuPort, hostPort, desPort, log)
    serverProtocol = RecvThread(rxpProtocol)
    serverProtocol.start()

    # execute user's commend
    while (True):
        Sinput = raw_input("type Window W - to change the window size \n"
                    + "terminate - to terminate the server\n")
        if "window" in Sinput:
            s = Sinput.split()
            try:
                wsize = int(s[1])
            except ValueError:
                print 'Invalid window size. Please try again.'
                sys.exit()
            if not 0 < wsize < 50:
                print 'Window size too big. Please try again.'
                sys.exit()
            print "Set window size to " + str(wsize)
            rxpProtocol.setWindowSize(wsize)
        # close server
        elif Sinput.__eq__("terminate"):
            rxpProtocol.close()
            serverProtocol.stop()
            for thread in rxpProtocol.threads:
                thread.stop()
            print ("Server is closed")
            break
예제 #11
0
def main():
    #uncomment
    #clientSocket = RxP()

    # check for number of correct command line arguments
    if len(sys.argv) != 4:
        print ('Please enter arguments in the correct format: X A P' + 
            '\nX: The port number this client should bind to'+
            '\nA: The IP address of NetEmu' + 

            '\nP: The UDP port number of NetEmu ')
        sys.exit()

    # port number at which the FxA-client's UDP socket should bind to. Should be equal to the server's port number minus 1
    try:
        portnumber = int(sys.argv[1])
    except:
        print 'Please enter a valid port number for client (1025-65536)'
        sys.exit()

    ipaddress = sys.argv[2]

    try:
        emuportnumber = int(sys.argv[3])
    except:
        print 'Please enter a valid port number for NetEmu (1025-65536)'
        sys.exit()

    file = ""
    # window size in segments
    windowSize = 30

    # check for valid client port numbers
    if portnumber < 1025 or portnumber > 65536: 
        print 'Please enter a valid port number for client (1025-65536)'
        sys.exit()

    # Port number for client must be even
    if portnumber % 2 != 0:
        print 'Port number for client must be even'
        sys.exit()

    # check for valid IP addresses
    try:
        inet_aton(ipaddress)
    except:
        if ipaddress != "localhost":
            print("Not a valid IP address")
            sys.exit()

    # check for valid NetEmu UDP port number
    if emuportnumber < 1025 or emuportnumber > 65536: 
        print 'Please enter a valid port number for NetEmu (1025-65536)'
        sys.exit()

    global emuportnumber

    # When everything passes, bind the RxP socket to passed in ip_address and port_number
    clientSocket = RxP.createRxPSocket(ipaddress, portnumber)
    global clientSocket

    # Set window size
    RxP.setWindowSize(clientSocket, windowSize)


    print "Welcome! Commands include: \n'connect' \n'get <file>' \n'post <file>' \n'window <size>' \n'disconnect'"

    #the command loop
    while True:

        # have the user input a command and parse it
        command = raw_input('\nCommand: ').split(" ")
        # check for invalid command
        if len(command) > 2:
            print "Enter a valid command"
            continue

        #check for connect and disconnect
        if len(command) == 1:

            if command[0] == "connect":
                connect()
                continue
            elif command[0] == "disconnect":
                disconnect()
                continue
            else:
                print "Please enter a valid command"
                continue
        #check for get, post, and window
        elif len(command) == 2:
            #get
            if command[0] == "get":
                file = str(command[1])
                get(file)
                continue
            #post
            if command[0] == "post":
                file = str(command[1])
                post(file)
                continue
            #window
            if command[0] == "window":
                #int type checking
                try:
                    size = int(command[1])
                except:
                    print "invalid window size"
                    continue
                window(windowSize)
                continue
            else:
                print "Please enter a valid command"
                continue
예제 #12
0
def connect(): 
    print "Connecting to server"
    ip, port = clientSocket.source_address
    RxP.connectToRxP(clientSocket, ip, emuportnumber)
    return