'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'