python 学习-- TCP编程

来源:互联网 发布:已经备案域名购买 编辑:程序博客网 时间:2024/05/23 19:14

直接上代码:

服务端:

import socketimport threading,times =socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 绑定ip和端口s.bind(('127.0.0.1',9999))# 定义最大连接数s.listen(5)print('等待连接...')# 定义子线程处理的方法def tcplink(sock,addr):    print('Accept new connection from %s:%s...' % addr)    sock.send(b'Welcome!')    # 接收来自客户端的消息    while True:        data = sock.recv(1024)        time.sleep(1)        if not data or data.decode('utf-8')=='exit':            break        sock.send(('Hello,%s!' % data.decode('utf-8')).encode('utf-8'))    sock.close()    print('Connection from %s:%s closed.' % addr)# 定义一个循环等待客户端的连接while True:    sock,addr = s.accept() # 线程阻塞等待连接    # 创建新的线程来处理TCP数据    t = threading.Thread(target=tcplink,args=(sock,addr))    t.start() # 开启子线程

运行结果:

客户端:

import  socket# 创建sockets = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# socket连接s.connect(('127.0.0.1',9999))# 打印连接之后接收到的消息print(s.recv(1024).decode('utf-8'))# 遍历发送消息for data in [b'Michael',b'Tracy',b'Sarah']:    s.send(data)    print(s.recv(1024).decode('utf-8'))# 发送exits.send(b'exit')# 关闭sockets.close()

运行结果:

服务端,关闭建立的socket,继续监听。。。



运行代码图解:


0 0
原创粉丝点击