Server Client Communication Python
Solution 1
In the server, you use the listening socket to receive data. It is only used to accept new connections.
change to this:
conn,addr =s.accept()
data=conn.recv(100000) # Read from newly accepted socket
conn.close()
s.close()
Solution 2
Your line s.send
is expecting to receive a stream object. You are giving it a string. Wrap your string with BytesIO.
Vinod K
Updated on June 04, 2022Comments
-
Vinod K almost 2 years
Server
import socket import sys s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) host= 'VAC01.VACLab.com' port=int(2000) s.bind((host,port)) s.listen(1) conn,addr =s.accept() data=s.recv(100000) s.close
CLIENT
import socket import sys s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) host="VAC01.VACLab.com" port=int(2000) s.connect((host,port)) s.send(str.encode(sys.argv[1])) s.close()
I want the server to receive the data that client sends.
I get the following error when i try this
CLIENT Side
Traceback (most recent call last): File "Client.py", line 21, in s.send(sys.argv[1]) TypeError: 'str' does not support the buffer interface
Server Side
File "Listener.py", line 23, in data=s.recv(100000) socket.error: [Errno 10057] A request to send or receive data was disallowed bec ause the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied
-
Vinod K about 12 yearsStill giving the same error at the client side. The server error got resolved.
-
Vinod K about 12 yearsDo i do this str.encode(sys.argv[1]) ?? i did that ,the errors have stopped but the data is not transferring.
-
Senthil Kumaran about 12 yearsVinod - Try it with Python2 then to know the difference.
-
Mahesha999 almost 6 years