PRO_gramer

trab 2.0 beta

Nov 27th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.88 KB | None | 0 0
  1. import socket
  2.  
  3. MAX_BYTES = 65535
  4.  
  5.  
  6. def client(port):
  7.     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  8.     print('\n-------------------\n   GEOGRAFIA    \n-------------------')
  9.     print('-------------------\nPAÍSES E CAPITAIS\n-------------------')
  10.     comando = input(
  11.         'ESCOLHA UMA OPÇÃO:\n1 - Consultar palavra\n2 - Incluir palavra\n3 - Editar significado da palavra\n0 - Sair\n')
  12.     while (comando != '0'):
  13.         if (comando == '1'):
  14.             data1 = comando.encode('utf8')
  15.             sock.sendto(data1, ('127.0.0.1', port))
  16.  
  17.             pais = input('Digite a palavra: ')
  18.             data2 = pais.encode('utf8')
  19.             sock.sendto(data2, ('127.0.0.1', port))
  20.  
  21.             data, address = sock.recvfrom(MAX_BYTES)
  22.             text = data.decode('utf8')
  23.             print(text)
  24.  
  25.         elif (comando == '2'):
  26.             data1 = comando.encode('utf8')
  27.             sock.sendto(data1, ('127.0.0.1', port))
  28.  
  29.             pais = input('Digite a palavra: ')
  30.             data2 = pais.encode('utf8')
  31.             sock.sendto(data2, ('127.0.0.1', port))
  32.             capital = input('Digite o significado: ')
  33.             data3 = capital.encode('utf8')
  34.             sock.sendto(data3, ('127.0.0.1', port))
  35.  
  36.             data, address = sock.recvfrom(MAX_BYTES)
  37.             text = data.decode('utf8')
  38.             print(text)
  39.         elif (comando == '3'):
  40.             data1 = comando.encode('utf8')
  41.             sock.sendto(data1, ('127.0.0.1', port))
  42.  
  43.             pais = input('Digite a palavra: ')
  44.             data2 = pais.encode('utf8')
  45.             sock.sendto(data2, ('127.0.0.1', port))
  46.  
  47.             data, address = sock.recvfrom(MAX_BYTES)
  48.             text = data.decode('utf8')
  49.             print(text, '\n')
  50.  
  51.             capital = input('Digite o novo significado: ')
  52.             data3 = capital.encode('utf8')
  53.             sock.sendto(data3, ('127.0.0.1', port))
  54.  
  55.             data, address = sock.recvfrom(MAX_BYTES)
  56.             text = data.decode('utf8')
  57.             print(text)
  58.         else:
  59.             print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\ndigite uma opção válida brother\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
  60.             # break
  61.  
  62.         comando = input(
  63.             '\nESCOLHA UMA OPÇÃO:\n1 - Consultar palavra\n2 - Incluir palavra\n3 - Editar o significado da palavra\n0 - Sair\n')
  64.  
  65.  
  66. def server(port):
  67.     dicionario_países = {
  68.         'Nicarágua': 'Manágua',
  69.         'Somalia': 'Mogadíscio',
  70.         'Mongolia': 'ULAANBAATAR',
  71.         'Austria': 'VIENA',
  72.         'Afeganistão': 'kabul',
  73.         'África do Sul': 'Pretória',
  74.         'Albânia': 'Tirana',
  75.         'Alemanha': 'Berlim',
  76.         'Andorra': 'Andorra-a-Velha',
  77.         'Angola': 'Luana',
  78.         'Árabia Saudita': 'Riade',
  79.         'Argélia': 'Argel',
  80.         'Argentina': 'Buenos Aires',
  81.         'Arménia': 'Erevã',
  82.         'Austrália': 'Camberra',
  83.         'Azerbaijão': 'Bacu',
  84.         'Bangladesh': 'Daca',
  85.         'Bahamas': 'Nassau',
  86.         'Barbados': 'Bridgtown',
  87.         'Berém': 'Manama',
  88.         'Bélgica': 'Bruxelas',
  89.         'Belize': 'Berlmopã',
  90.         'Benim': 'Porto Novo',
  91.         'Bielorrúsia': 'Minsque',
  92.         'Bolívia': 'Sucre',
  93.         'Botsuana': 'Gaborone',
  94.         'Brasil': 'Brasília',
  95.         'Brunei': 'Bandar Seri',
  96.         'Bulgária': 'Sófia',
  97.         'Burquina Faso': 'Uagadugu',
  98.         'Burúndi': 'Bujumbura',
  99.         'Butão': 'Timbu',
  100.         'Cabo Verde': 'Praia',
  101.         'Camarões': 'Iundé',
  102.         'Camboja': 'Pnom Pene',
  103.         'Canadá': 'Otava',
  104.         'Catar': 'Doa',
  105.         'Cazaquistão': 'Astana',
  106.         'Chade': 'Jamena',
  107.         'Chile': 'Santiago',
  108.         'China': 'Pequim',
  109.         'Chipre': 'Nicósia',
  110.         'Colômbia': 'Bogotá',
  111.         'Comores': 'Moroni',
  112.         'Coreia do Norte': 'Pionguinague',
  113.         'Coreia do Sul': 'Seul',
  114.         'Cosovo': 'Pristina',
  115.         'Costa do Marfim': 'Iamussucro',
  116.         'Costa Rica': 'São José',
  117.         'Croácia': 'Zagreb',
  118.         'Cuaite': 'Cidade do Cuaite',
  119.         'Cuba': 'Havana',
  120.         'Dinamarca': 'Copenhaguen',
  121.         'Egito': 'Cairo',
  122.         'Emirados Árabes Unidos': 'Abu Dabi',
  123.         'Equador': 'Quito',
  124.         'Eslováquia': 'Bratislava',
  125.         'Espanha': 'Madrid',
  126.         'Estados Unidos': 'Whashington DC',
  127.         'Estônia': 'Talim',
  128.         'Etiópia': 'Adis Abeba',
  129.         'Filipinas': 'Manila',
  130.         'Finlândia': 'Helsínquia',
  131.         'França': 'Paris',
  132.         'Gabão': 'Libreville',
  133.         'Gâmbia': 'Banjul',
  134.         'Gana': 'Acra',
  135.         'Geórgia': 'Tebílissi',
  136.         'Granada': 'São Jorge',
  137.         'Grécia': 'Atenas',
  138.         'Guatemala': 'Cidade da guatemala',
  139.         'Guiana': 'Georgetown',
  140.         'Haiti': 'Porto Princípe',
  141.         'Hungria': 'Budapeste',
  142.         'Índia': 'Nova Delí',
  143.         'Indonésia': 'Jacarta',
  144.         'Iraque': 'Bagdá',
  145.         'Irlanda': 'Dublim',
  146.         'Israel': 'Jerusalém',
  147.         'Itália': 'Roma',
  148.         'Jamaica': 'Kingston',
  149.         'Japão': 'Tóquio',
  150.         'Jordânia': 'Amã',
  151.         'Letônia': 'Riga',
  152.         'Líbano': 'Beirute',
  153.         'Libéria': 'Monróvia',
  154.         'Luxemburgo': 'Luxemburgo',
  155.         'Macedônia': 'Escópia',
  156.         'Madagascar': 'Antananarivo',
  157.         'Malásia': 'Cuala Lampur',
  158.         'Mali': 'Bamaco',
  159.         'Malta': 'Valeta',
  160.         'Marrocos': 'Rebate',
  161.         'México': 'Cidade do México',
  162.         'Moçambique': 'Maputo',
  163.         'Mônaco': 'Mônaco',
  164.         'Noruega': 'Oslo',
  165.         'Nova Zelândia': 'Wellington',
  166.         'Omã': 'Mascate',
  167.         'Peru': 'Lima',
  168.         'Portugal': 'Lisboa',
  169.  
  170.     }
  171.  
  172.     def consulta(pais):
  173.         if (dicionario_países.get(pais) == None):
  174.             return 'Não contem esse país em nosso banco de dados!'
  175.         else:
  176.             return '!!!!!!!!!!!!!!!!!!!\nA capital  de "{}": {!r}\n!!!!!!!!!!!!!!!!!!!'.format(pais, dicionario_países[pais])
  177.  
  178.     def inserir(pais, capital):
  179.         dicionario_países[pais] = capital
  180.         return '!!!!!!!!!!!!!!!!!!!\nO País"{}" e sua Capital "{}" foi adicionada ao banco de dados.\n!!!!!!!!!!!!!!!!!!!'.format(pais,capital)
  181.  
  182.     def editar(pais, capitalnew):
  183.         dicionario_países[pais] = capitalnew
  184.         return '!!!!!!!!!!!!!!!!!!!\nA capital de "{}" foi editada!!!\n!!!!!!!!!!!!!!!!!!!.'.format(pais)
  185.  
  186.     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  187.     sock.bind(('127.0.0.1', port))
  188.     print('Listening at {}'.format(sock.getsockname()))
  189.     while True:
  190.         data1, address = sock.recvfrom(MAX_BYTES)
  191.         comando = data1.decode('utf8')
  192.  
  193.         if (comando == '1'):
  194.             data2, address = sock.recvfrom(MAX_BYTES)
  195.             pais = data2.decode('utf8')
  196.  
  197.             text = consulta(pais)
  198.             data = text.encode('utf8')
  199.             sock.sendto(data, address)
  200.             # print(text)
  201.         elif (comando == '2'):
  202.             data2, address = sock.recvfrom(MAX_BYTES)
  203.             pais = data2.decode('utf8')
  204.  
  205.             data3, address = sock.recvfrom(MAX_BYTES)
  206.             capital = data3.decode('utf8')
  207.             text = inserir(pais, capital)
  208.             data4 = text.encode('utf8')
  209.             sock.sendto(data4, address)
  210.             # print(text)
  211.         elif (comando == '3'):
  212.             data2, address = sock.recvfrom(MAX_BYTES)
  213.             pais = data2.decode('utf8')
  214.  
  215.             text = consulta(pais)
  216.             data = text.encode('utf8')
  217.             sock.sendto(data, address)
  218.  
  219.             data3, address = sock.recvfrom(MAX_BYTES)
  220.             capital = data3.decode('utf8')
  221.             text = editar(pais, capital)
  222.             data4 = text.encode('utf8')
  223.             sock.sendto(data4, address)
  224.  
  225.  
  226. comando = input("Digite 'server' para servidor ou 'client' para cliente: ")
  227. if (comando == 'server'):
  228.     server(1060)
  229. elif (comando == 'client'):
  230.     client(1060)
  231. else:
  232.     print('ops!')
Advertisement
Add Comment
Please, Sign In to add comment