rebeccacc

socorro

Apr 12th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.16 KB | None | 0 0
  1. MAX_BYTES = 65535
  2. import tkinter
  3. from tkinter import *
  4. import argparse
  5. import socket
  6. dic = {"one":"um", "two": "dois"}
  7.  
  8. def server(port):
  9. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  10. sock.bind(('127.0.0.1', port))
  11. print('Listening at {}'.format(sock.getsockname()))
  12. while True:
  13. a, ad = sock.recvfrom(MAX_BYTES)
  14. a = a.decode("utf-8")
  15. print(a)
  16. if a == "pesquisa":
  17. req, add = sock.recvfrom(MAX_BYTES)
  18. f = req.decode("utf-8")
  19. f = str(f).strip().lower()
  20. print(f)
  21. if f in dic:
  22. env = dic.get(f)
  23. b = env.encode('utf-8')
  24. sock.sendto(b, add)
  25. else:
  26. err = 'A PALAVRA NAO ESTA CONTIDA NO DICIONARIO'
  27. b = err.encode('utf-8')
  28. sock.sendto(b, add)
  29. elif a == "lista":
  30. env = str(dic.items())
  31. env = env.encode('utf-8')
  32. sock.sendto(env, ad)
  33. elif a == "adc":
  34. rig, add = sock.recvfrom(MAX_BYTES)
  35. rig = rig.decode('utf-8')
  36. rig = str(rig).strip().lower()
  37. rpt, add = sock.recvfrom(MAX_BYTES)
  38. rpt = rpt.decode('utf-8')
  39. rpt = str(rpt).strip().lower()
  40. dic[rig] = rpt
  41. envs = str(dic.items())
  42. envs = envs.encode('utf-8')
  43. sock.sendto(envs, ad)
  44.  
  45.  
  46. def client(port):
  47. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  48.  
  49. def pesquisa():
  50. verif = "pesquisa"
  51. verif = verif.encode("utf-8")
  52. sock.sendto(verif, ('127.0.0.1', port))
  53.  
  54. key = str(entrada.get()).strip()
  55. key = key.encode("utf-8")
  56. sock.sendto(key, ('127.0.0.1', port))
  57.  
  58. r, ad = sock.recvfrom(MAX_BYTES)
  59. lblmostra["text"] = "%s" %r.decode("utf-8")
  60.  
  61. def lista():
  62. verif = "lista"
  63. verif = verif.encode("utf-8")
  64. sock.sendto(verif, ('127.0.0.1', port))
  65.  
  66. jlista = Tk()
  67. r, add = sock.recvfrom(MAX_BYTES)
  68. lblista = Label(jlista, text="%s" %r.decode("utf-8"))
  69. lblista.place(x="50", y="50")
  70. jlista.mainloop()
  71.  
  72. def adc():
  73. verif = "adc"
  74. verif = verif.encode("utf-8")
  75. sock.sendto(verif, ('127.0.0.1', port))
  76.  
  77. def ok():
  78. r = str(entig.get()).strip().lower()
  79. print(r)
  80. r = r.encode("utf-8")
  81. sock.sendto(r, ('127.0.0.1', port))
  82. s = str(entpt.get()).strip().lower()
  83. print(s)
  84. s = s.encode("utf-8")
  85. sock.sendto(s, ('127.0.0.1', port))
  86. v, ad = sock.recvfrom(MAX_BYTES)
  87. v = v.decode('utf-8')
  88. lbit["text"] = "%s" % v
  89.  
  90. jadc = Tk()
  91. lbpt = Label(jadc, text="Insira a palavra em portugues:")
  92. lbpt.place(x="50", y="50")
  93. entpt = Entry(jadc, text="", width="25")
  94. entpt.place(x="50", y="80")
  95. lbig = Label(jadc, text="Insira a palavra em inglês:")
  96. lbig.place(x="50", y="110")
  97. entig = Entry(jadc, text="", width="25")
  98. entig.place(x="50", y="140")
  99. btnvai = Button(jadc, text="ADICIONA", width=10, command=ok)
  100. btnvai.place(x="80", y="170")
  101. lbit = Label(jadc, text="")
  102. lbit.place(x="50", y="200")
  103. jadc.mainloop()
  104.  
  105.  
  106. def sobre():
  107. jsobre = Tk()
  108. lbsobre = Label(jsobre, text=" Dicionario Inglês - Português \n "
  109. "Autores: Anderson Luis e Rebecca Câmara")
  110. lbsobre.place(x="50", y="50")
  111. jsobre.mainloop()
  112.  
  113. janela = Tk() # ciração da janela da interface grafica
  114. janela.title("SUPORTE AO USUARIO") # nome da janela
  115. janela.geometry("550x367+200+200") # dimensões da janela
  116.  
  117. foto = PhotoImage(file="bg1.png") # importação de uma imagem para background
  118. lblbg = Label(janela, image=foto) # definindo o background
  119. lblbg.place(x="0", y="0")
  120.  
  121.  
  122. entrada = Entry()
  123. entrada.place(x="200", y="180")
  124. btnPesquisa = Button(janela, text="PESQUISAR", width=10, bg="white", fg="black", command=pesquisa)
  125. btnPesquisa.place(x="350", y="178")
  126. lblmostra = Label(janela, text="", bg="white", fg="black")
  127. lblmostra.place(x="200", y="220")
  128. btnLista = Button(janela, text="LISTAR", width=10, height=1, bg="gray", fg="black", command=lista)
  129. btnLista.place(x="0", y="0")
  130. btnAdc = Button(janela, text="ADICIONAR", width=10, height=1, bg="gray", fg="black", command=adc)
  131. btnAdc.place(x="80", y="0")
  132. btnSobre = Button(janela, text="SOBRE", width=10, height=1, bg="gray", fg="black", command=sobre)
  133. btnSobre.place(x="160", y="0")
  134.  
  135. janela.mainloop()
  136.  
  137.  
  138.  
  139. if __name__ == '__main__':
  140. choices = {'client': client, 'server': server}
  141. parser = argparse.ArgumentParser(description="Send/receive UDP locally")
  142. parser.add_argument('role', choices=choices, help='which role to play')
  143. parser.add_argument('-p', metavar='PORT', type=int, default=1060,
  144. help='UDP port (default 1060)')
  145. args = parser.parse_args()
  146. function = choices[args.role]
  147. function(args.p)
Advertisement
Add Comment
Please, Sign In to add comment