I am working on this code
from socket import *
HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)
serversock = socket(AF_INET, SOCK_STREAM)
serversock.bind(ADDR)
serversock.listen(2)
while 1:
print ("waiting on connection")
clientsock, addr = serversock.accept()
print ('connected from:', addr)
while 1:
data = clientsock.recv(1024).decode()
if not data: break
clientsock.send(data.encode())
clientsock.close()
serversock.close()
I get this error:
OSError: [WinError 10038] an operation was attempted on something that is not a socket
You are closing the clientsock after reading only part of the data.
clientsock.close()
is at the wrong level of indentation. Move it to the left by one step.
The problem is with close(). after connection get close you need to initialize the connection again
add this line inside while loop
serversock = socket(AF_INET, SOCK_STREAM)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With