client2:
# encoding: utf8# 表示当前的文件默认使用 gbk 编码# 编码方式和解码方式要保持一致# 导入套接字模块 socketimport socketimport threading# 接收数据的线程def reciver_thread(client):while True:# 不断的打印接收到的数据print(client.recv(100).decode())# main 函数,为主模块时执行def main():# 1. 创建一个用于网络连接的套接字,使用 TCP 协议client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2. 等待客户端的连接client.connect(("127.0.0.1", 0x1616))threading.Thread(target=reciver_thread, args=(client,)).start()# 3. 和客户端使用 send recv 进行交互while True:s = input(">> ")# 发送的数据必须是 bytes 类型的,需要编码client.send(s.encode())if __name__ == "__main__":main()
server2:
# 导入套接字模块 socketimport socketimport threading# 接收数据的线程def reciver_thread(client):while True:# 不断的打印接收到的数据print(client.recv(100).decode())# main 函数,为主模块时执行def main():# 1. 创建一个用于网络连接的套接字,使用 TCP 协议server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2. 绑定套接字到执行的 ip 和 端口,必须是元组server.bind(("127.0.0.1", 0x1616))# 3. 设置套接字为监听状态,同一时刻能接收的数量server.listen(socket.SOMAXCONN)# 4. 等待客户端的连接client, address = server.accept()threading.Thread(target=reciver_thread, args=(client,)).start()# 5. 和客户端使用 send recv 进行交互while True:s = input(">> ")# 发送的数据必须是 bytes 类型的,需要编码client.send(s.encode())if __name__ == "__main__":main()
