当前位置: 首页 > news >正文

2025年2月2日(网络编程 tcp)

tcp 循环服务

import socketdef main():# 创建 socket# 绑定tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server.bind(("", 8080))# socket 转变为被动tcp_server.listen(128)while True:# 产生专门为链接进来的客户端服务的 socketprint("堵塞-1")server_client, client_addr = tcp_server.accept()# 接收数据(来自客户端)print(client_addr)while True:recv_msg = server_client.recv(1024)if recv_msg:print(recv_msg.decode("utf-8"))else:print("用户下线")break# 发送数据(发送到客户端)server_client.send("谢谢".encode("utf-8"))# 关闭套接字server_client.close()print("服务完毕")tcp_server.close()if __name__ == "__main__":main()

在这里插入图片描述

下载器

import socketdef main():# 创建 sockettcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_client.bind(("", 8081))# 链接服务器tcp_client.connect(("192.168.0.178", 8080))# 发送数据send_data = input("请输入下载名称:")tcp_client.send(send_data.encode("utf-8"))# 接收数据recv_msg = tcp_client.recv(1024)  # 1024 bytes 1 kBprint(recv_msg)# 保存数据# 存在再创建if recv_msg:  # 服务器关闭解堵塞with open("[测试]" + send_data, "wb") as f:f.write(recv_msg)# 关闭套接字tcp_client.close()if __name__ == "__main__":main()
import socketdef main():# 创建 socket# 绑定tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)tcp_server.bind(("192.168.0.178", 8080))# socket 转变为被动tcp_server.listen(128)# 产生专门为链接进来的客户端服务的 socketprint("堵塞-1")server_client, client_addr = tcp_server.accept()# 接收数据(来自客户端)print(client_addr)recv_msg = server_client.recv(1024)print(recv_msg.decode("utf-8"))# 发送数据(发送到客户端)file_name = recv_msg.decode("utf-8")file_content = Nonetry:f = open(file_name, "rb")file_content = f.read()f.close()except Exception:print("没有要下载的文件")if file_content:server_client.send(file_content)# 关闭套接字server_client.close()tcp_server.close()if __name__ == "__main__":main()

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/531541.html

相关文章:

  • 【Docker项目实战】使用Docker部署MinIO对象存储(详细教程)
  • 使用ollama本地部署Deepseek r1
  • Unity飞行代码 超仿真 保姆级教程
  • DeepSeek蒸馏模型:轻量化AI的演进与突破
  • 使用 sunshine+moonlight 配置串流服务无法使用特殊键
  • 5.角色基础移动
  • 单细胞-第四节 多样本数据分析,下游画图
  • Linux的循环,bash的循环
  • 【DeepSeek开发】Python实现股票数据可视化
  • 华为小米vivo向上,苹果荣耀OPPO向下
  • 毕业设计:基于深度学习的高压线周边障碍物自动识别与监测系统
  • el-table表格点击单元格实现编辑
  • 数据结构:时间复杂度
  • SPI(Serial Peripheral Interface)串行外围设备接口
  • Java 8 Stream API
  • 亚博microros小车-原生ubuntu支持系列:21 颜色追踪
  • GESP6级语法知识(六):(动态规划算法(六)多重背包)
  • MySQL 事务实现原理( 详解 )
  • AI协助探索AI新构型自动化创新的技术实现
  • 九. Redis 持久化-RDB(详细讲解说明,一个配置一个说明分析,步步讲解到位)
  • mac连接linux服务器
  • oracle: 表分区>>范围分区,列表分区,散列分区/哈希分区,间隔分区,参考分区,组合分区,子分区/复合分区/组合分区
  • 使用Pygame制作“走迷宫”游戏
  • AJAX案例——图片上传个人信息操作
  • Day35-【13003】短文,什么是双端队列?栈和队列的互相模拟,以及解决队列模拟栈时出栈时间开销大的方法
  • 力扣 55. 跳跃游戏
  • 深入剖析 HTML5 新特性:语义化标签和表单控件完全指南
  • 本地快速部署DeepSeek-R1模型——2025新年贺岁
  • MVC 文件夹:架构之美与实际应用
  • Redis --- 秒杀优化方案(阻塞队列+基于Stream流的消息队列)