socket(TCP)通讯之Python实现
1、Service
address = ('localhost', 9102) # AF_INET = ipv4; SOCK_STREAM:TCP s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 监听 IP:port s.bind(address) # 最大允许连接数量 s.listen(5) while True: print('----server wait') # 阻塞 每当有客户端的请求过来开始执行 # 连接处理 (已完成三次握手)并获取资源对象 | conn, addr = s.accept() # 请求处理 | 读取客户端发送过来的数据 | recv_data = conn.recv(1024) print(recv_data) # 响应处理 | 把客服端发送过来的数据又转发回去 conn.sendall(data.encode('utf-8'))
2、Client
import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务端 s.connect(('127.0.0.1', 9102)) # 请求 | 发送数据到服务端 s.sendall(b'hello') # 响应 | 接受服务端返回到数据 data = s.recv(1024) print(data) # hello # 关闭 socket s.close()
----
在实际使用TCP通讯的时候,由于TCP的机制,存在粘包情况,针对这一问题的处理见
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步