Advertisement
Amenezes

socket client.py

Jan 17th, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | None | 0 0
  1. import socket
  2. import select
  3. import errno
  4. import sys
  5.  
  6. HEADER_LENGTH = 10
  7. IP = "127.0.0.1"
  8. PORT = 1234
  9.  
  10. #Configuring sockets
  11. my_username = input("Username: ")
  12. client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  13. client_socket.connect((IP, PORT))
  14. client_socket.setblocking(False)
  15.  
  16. #Recieving message input
  17. username = my_username.encode("utf-8")
  18. username_header = f"{len(username) :<{HEADER_LENGTH}}".encode("utf-8")
  19. client_socket.send(username_header + username)
  20.  
  21. while True:
  22.     message = input(f"{my_username} > ")
  23.     #enviar mensagem
  24.     if message:
  25.         message = message.encode("utf-8")
  26.         message_header = f"{len(message) :< {HEADER_LENGTH}}".encode("utf-8")
  27.         client_socket.send(message_header + message)
  28.     try:
  29.         while True:
  30.             #receber mensagens
  31.             username_header = client_socket.recv(HEADER_LENGTH)
  32.             if not len(username_header):
  33.                 print("connection closed by the server")
  34.                 sys.exit()
  35.  
  36.             username_length = int(username_header.decode("utf-8").strip())
  37.             username = client_socket.recv(message_length).decode("utf-8")
  38.  
  39.             message_header = client_socket.recv(HEADER_LENGTH)
  40.             message_length = int(message_header.decode("utf-8").strip())
  41.             message = client_socket.recv(message_length).decode("utf-8")
  42.  
  43.             print(f"{username} > {message}")
  44.  
  45.     except IOError as e:
  46.         if e.errno != errno.EAGAIN and e.errno != errno.EWOULDBLOCK:
  47.             print('Reading error', str(e))
  48.             sys.exit()
  49.  
  50.     except Exception as e:
  51.         print('General error', str(e))
  52.         sys.exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement