Server.py
import socket
HOST = ‘daring.cwi.nl’
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST ,PORT ))
s.listen(1)
conn,addr = s.accept()
print(‘Connected by’,addr)
while 1:
data = conn.recv(1024)
if not data:break
conn.sendall(data)
conn.close()
Client.py
import socket
HOST=‘127.0.0.1’
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
s.sendall(‘Hello,world’)
data = s.recv(1024)
s.close()
print(‘Received’,repr(data))
报错1 :
s.bind((HOST ,PORT ))
socket.gaierror: [Errno 11001] getaddrinfo failed
解决:将HOST = ‘daring.cwi.nl’ 改为HOST = ‘127.0.0.1’
报错2: s.sendall(‘Hello,world’)
TypeError: a bytes-like object is required, not ‘str’
解决:s.sendall(‘Hello,world’)
换成s.sendall(‘Hello,world’.encode(‘UTF-8’))
遗留问题:server.py 启动后,应该要可以接收多个client发送的请求,但是启动第二个client.py的时候就报无法连接了 此涉及到多线程 待解决后更新