服务器客户端通信Python

Vin*_*d K 4 python sockets client

服务器

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
Run Code Online (Sandbox Code Playgroud)

客户

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()
Run Code Online (Sandbox Code Playgroud)

我希望服务器接收客户端发送的数据.

我尝试这个时收到以下错误

客户端

回溯(最近一次调用最后一次):文件"Client.py",第21行,在s.send(sys.argv [1]中)TypeError:'str'不支持缓冲区接口

服务器端

文件"Listener.py",第23行,在data = s.recv(100000)中socket.error:[Errno 10057]由于套接字未连接而且(在数据报上发送时)不允许发送或接收数据的请求使用sendto调用的套接字)没有提供地址

Som*_*ude 8

在服务器中,您使用侦听套接字来接收数据.它仅用于接受新连接.

改为:

conn,addr =s.accept()

data=conn.recv(100000)  # Read from newly accepted socket

conn.close()
s.close()
Run Code Online (Sandbox Code Playgroud)