服务器

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()

10-07 16:24
查看更多