服务器
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
客户端
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()
我希望服务器接收客户端发送的数据。
尝试此操作时出现以下错误
客户端侧
回溯(最近一次调用最后一次):
文件“Client.py”,第 21 行,在
s.send(sys.argv[1])
TypeError: 'str' 不支持缓冲区接口(interface)
服务器端
文件“Listener.py”,第 23 行,在
数据=s.recv(100000)
socket.error: [Errno 10057] 不允许发送或接收数据的请求,bec
使用套接字未连接并且(当使用数据报套接字发送时
sendto call) 没有提供地址
最佳答案
在服务器中,您使用监听套接字接收数据。它仅用于接受新连接。
改成这样:
conn,addr =s.accept()
data=conn.recv(100000) # Read from newly accepted socket
conn.close()
s.close()