服务器端程序
import structimport socketsk = socket.socket()sk.bind(('127.0.0.1',9000))sk.listen()conn,addr = sk.accept()send_msg = input('>>>').encode()bytes_len = struct.pack('i',len(send_msg))conn.send(bytes_len)conn.send(send_msg) # 粘包现象conn.send(b'world')conn.close()sk.close()# 1.发送端的粘包 合包机制 + 缓存区# 2.接收端的粘包 延迟接受 + 缓存区# 3.流式传输 # 电流 高低电压 # 所以我们说 tcp协议是无边界的流式传输# 4.拆包机制# 粘包现象的本质# 接收端不知道发送端给我发送了多长的数据
客户端程序
import structimport socketsk = socket.socket()sk.connect(('127.0.0.1',9000))bytes_len = sk.recv(4)msg_len = struct.unpack('i',bytes_len)[0]msg = sk.recv(msg_len)print(msg.decode())msg2 = sk.recv(5)print(msg2)sk.close()