来直接上代码:
服务器端:
import gevent
from gevent import monkey
import socket
import time
monkey.patch_all()#猴子补丁
def connect_server(url,port):
server=socket.socket()
server.bind((url,port))
server.listen()
while True:
conn, address = server.accept()
print("客户端地址:",conn)
gevent.spawn(handle_data,conn)
def handle_data(conn):
while True:
try:
data = conn.recv(1024)
print("收到的数据是:" ,data.decode('utf-8'))
conn.send(data)
except ConnectionError as e:
print(e)
#finally:
#conn.close()
if __name__=="__main__":
url="localhost"
port=5555
connect_server(url,port)
客户端1
import socket
client1=socket.socket()
client1.connect(("localhost",5555))
while True:
try:
send_mas=input("请输入字符串:").strip()
client1.send(send_mas.encode('utf-8'))
recv_mas=client1.recv(1024)
print("收到的数据:",recv_mas.decode('utf-8'))
except ConnectionError as e:
print(e)
break
client1.close()
客户端2
import socket
client2=socket.socket()
client2.connect(("localhost",5555))
while True:
try:
send_mas=input("请输入字符串:").strip()
client2.send(send_mas.encode('utf-8'))
recv_mas=client2.recv(1024)
print("收到的数据:",recv_mas.decode('utf-8'))
except ConnectionError as e:
print(e)
break
client2.close()
客户端3
import socket
client3=socket.socket()
client3.connect(("localhost",5555))
while True:
try:
send_mas=input("请输入字符串:").strip()
client3.send(send_mas.encode('utf-8'))
recv_mas=client3.recv(1024)
print("收到的数据:",recv_mas.decode('utf-8'))
except ConnectionError as e:
print(e)
break
client3.close()
来看运行效果:
是不是实现了和serversocket一样的功能呢
如果对我的文章感兴趣,请为我点一个赞,如果有python的知识需要了解或探讨,可以加本人微信:cuiliang1666457052