Exemple #1
0
        'Please enter reg (to register), drg (to deregister), or exit (to exit): '
    )

    if (choice == 'reg'):
        print '\nRegistering with Foreign Agent.\nListening...'

        # Send frame to register with FA
        sendAFrame(1, UDP_IP, addrHA, 'Msg', addrFA, 8000)

        # Listen
        while True:
            # Receive a frame and store it in recvFrame; reset recvData
            data, addr = sock.recvfrom(1024)
            for c in data:
                recvData.append(c)
            recvFrame = sendFrame.decodeFrame(recvData)
            recvData = bytearray()
            fTyp = recvFrame.getType()
            fIPA = recvFrame.getIpA()
            fIPB = recvFrame.getIpB()
            fMsg = recvFrame.getMessage()

            # Print out received data to visually confirm
            print ''
            print 'Received Type is: ' + str(fTyp)
            print 'Received IP A is: ' + fIPA
            print 'Received IP B is: ' + fIPB
            print 'Received Message is: ' + fMsg

            # Process received frame
            if (fTyp == 8):
    #set target to home agent
    trgtIP = addrHA
    trgtPrt = 7000
    sfMsg = message
    #this informs correspondent that no mobile node wtih that IP is registered
    sendFrame = Frame(sfTyp, sfIPA, sfIPB, sfMsg)
    sock.sendto(sendFrame.encodeFrame(), (trgtIP, trgtPrt))

    print '\nWaiting for a response...\n'

    # Receive a response
    data, addr = sock.recvfrom(1024)
    for c in data:
        recvData.append(c)
    recvFrame = recvFrame.decodeFrame(recvData)
    recvData = bytearray()
    fTyp = recvFrame.getType()
    fIPA = recvFrame.getIpA()
    fIPB = recvFrame.getIpB()
    fMsg = recvFrame.getMessage()
    if (fTyp == 6):
        # Mobile node wasn't registered
        print 'Mobile Node is not registered with Home Agent\n'

    elif (fTyp == 9):
        print 'Message from Mobile Node: ' + fMsg + '\n'

    else:
        print 'Frame type invalid\n'