import socket import threading host='' port=6889 def cilenThred(conn,addr): print("成功接受客户端{}的连接:{}".format(addr[0],str(addr[1]))) #服务器向客户端发送信息说明已经连接成功 msg='你已经成功连接到服务器' conn.sendall(bytes(msg,encoding="utf-8")) while True: data=conn.recv(1024) print("服务器接受到的数据为{}".format(str(data,encoding="utf-8"))) message='server>>{}'.format(str(data,encoding="utf-8")) conn.sendall(bytes(message,encoding="utf-8")) chioce = str(conn.recv(1024),encoding="utf-8") if chioce=="exit": conn.close() break else: pass try: s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #绑定ip地址和端口号 s.bind((host,port)) print('成功绑定了ip地址,端口号为{}'.format(port)) #服务器创建监听 s.listen(10) print("创建监听模式") while True: #成功接收客户端的连接,兵返回连接对象和地址 conn,addr=s.accept() t=threading.Thread(target=cilenThred,args=(conn,addr)) t.start() except socket.error as msg: print("socket出现错误,错误为{}".format(msg)) finally: s.close()
客户端:
import socket import sys host="localhost" port=6889 try: s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) print('成功创建socket对象') s.connect((host,port)) print("成功连接到服务器端") reply=str(s.recv(1024),encoding="utf-8") print("成功接受到服务器返回的内容:{}".format(reply)) while True: message=input("请输入要发送到服务器的信息》》") s.sendall(bytes(message,encoding="utf-8")) print("向服务器发送请求成功") reply1=str(s.recv(1024),encoding="utf-8") print("成功接受到服务器返回的内容{}".format(reply1)) chioce=input("是否继续输入?(y/n)") if chioce.lower()=="y": s.sendall(bytes("ok",encoding="utf-8")) pass else: s.sendall(bytes("exit",encoding="utf-8")) print("输入结束") break except socket.error as msg: print("创建socket错误,错误为{0}".format(msg)) sys.exit(-1) finally: s.close()