I am trying to create a UDP client-server from a TCP one. I ran into an issue with encoding and printing my receiving message from the server to the client. It works the way I have it on TCP but doesn't seem to work on UDP and I am not sure on what else I have to encode?
Here is the error I am getting:
File "/Users/PycharmProjects/UDPProject/client.py", line 29, in <module>
print("received %s" % command)
TypeError: not all arguments converted during string formatting
And here is my client code with some code cut out.
while True:
message = input("Please enter a command:\n") # ask user to input message
if message == 'quit':
break
if len(message) == 0:
print("Please enter something")
message = input("Please enter a command:\n")
print("Sending %s" % message)
sock.sendto((message.encode("utf-8")), address) # send message
command = str(sock.recvfrom(BUFFER_SIZE), "utf-8")
print("received %s" % command)
print("closing connection with server")
sock.close()
It is happening when the socket is trying to receive from the buffer size in utf-8 format and when I try to print it.
EDIT: I fixed the error, it was just typo as outlined by lenz but now it gives me this error
command = str(sock.recvfrom(BUFFER_SIZE), "utf-8")
TypeError: decoding to str: need a bytes-like object, tuple found
I am not sure why???