# coding=utf-8
# 多线程TCP服务器import socket
import threadingbind_ip = "127.0.0.1"  # 监听的IP 地址
bind_port = 9999  # 监听的端口# 建立一个socket对象
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定监听的地址,创建的对象是AF_INET的形式,所以地址(ip, port)的元组形式来表示
server.bind((bind_ip, bind_port))# 启动监听并设置连接数为5
server.listen(5)print("[*] Listening on %s:%d" % (bind_ip, bind_port))# 这是客户处理线程,也是一个回调函数,创建一个新的进程对象,将客户端套接字对象作为一个句柄传递给它。
def handle_client(client_socket):# 打印处客户端发送得到的内容request = client_socket.recv(1024)print("[*] Received: %s " % request)# 返还一个 ACK 在计算机网络中的意思是返回包确认,表示收到client_socket.send("ACK!")client_socket.close()# 等待连接,这里必定进入循环
while True:# 一个客户端成功建立连接的时候,我们将收到的客户端套接字对象保存到client变量中,将远程连接的细节保存到addr变量中。# 返回的client是一个套接字,是表示专属客户的一个新的套接字  |  而addr则是一个tuple元组,抓了某次数据返回的就是('127.0.0.1', 62549)# 运行到下面就被当作套接字传递给上面自定义的 handle_client 函数client, addr = server.accept()# 打印结果 在('127.0.0.1', 62549)中addr[0] -> 127.0.0.1,addr[1] -> 62549print("[*] Accepted connection from: %s:%d" % (addr[0], addr[1]))# 挂起客户端线程,处理传入的数据。# Thread是一个类,创建一个新的线程对象,target指定调用的函数,args指定调用函数的参数,是一个元组,后面要加一个’,’# 当调用start函数时,就回去执行这个函数client_handler = threading.Thread(target=handle_client, args=(client,))# 启动线程开始处理客户端连接。handle_client 函数执行recv()函数之后将一段信息发送给客户端client_handler.start()

详细都写在注释里了,有什么写的不清楚的或者哪里不理解的可以指出了

这里是运行的结果:

注:没有这个网络调试助手的在上一篇文章中有提到

Python实现简易TCP服务器相关推荐

  1. 基于Python Tkiner、thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信

    基于Python Tkiner.thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信 完整代码下载地址:基于Python Tkiner.thread与soc ...

  2. 简易TCP服务器搭建

    目录 一.套接字及其分类 二.相关接口函数 三.TCP服务器搭建流程 1.创建套接字socket() 2.保存服务器信息 3.套接字绑定 4.监听客户端连接请求 5.接收客户端连接请求 6.数据收发 ...

  3. python网络编程---TCP服务器

    0x01 环境 python2 pycharm 0x02 程序 客户端程序: # -*- coding:UTF-8 -*- import socket ''' target_host='www.bai ...

  4. python实现tcp通信_Python实现简易TCP通信程序

    TCP简介 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议. TCP旨在适应支持多网络应用的分层协议层次结构. ...

  5. Socket之TCP服务器【Python】

    下面是其他相关的终端的创建: Socket之TCP客户端[Python] Socket之UDP服务器[Python] Socket之UDP客户端[Python] 创建TCP服务器 首先,我们先创建一段 ...

  6. python实现外部静态服务器,浏览器通过HTTP与之通信1

        因为网络间通信是基于TCP协议传输数据的,而服务器与浏览器之间通信是基于HTTP协议的,那么下面基于python实现一个tcp服务器,浏览器可以基于http协议进行发送请求和解析.展示浏览器返 ...

  7. python实现外部静态服务器,浏览器通过HTTP与之通信2

            因为网络间通信是基于TCP协议传输数据的,而服务器与浏览器之间通信是基于HTTP协议的,那么下面基于python实现一个tcp服务器,浏览器可以基于http协议进行发送请求和解析.浏览 ...

  8. python tcp服务器模板_python socket之tcp服务器与客户端示例

    Python中用socket编写服务器和客户端... 先说下我的问题,本来预想是,客户端连上服务器,然后向服务器发送信息服务器端代码 while 1: buf = s.recv(1024) 改成 wh ...

  9. python tcp服务器 多线程_Python中的多线程TCP服务器

    我使用python的threding模块创建了一个简单的多线程tcp服务器.每次连接新客户端时,该服务器都会创建一个新线程. #!/usr/bin/env python import socket, ...

  10. python 简易HTTP服务器搭建

    安装Python简易HTTP服务器 大多数Linux/Unix/mac OS操作系统都已默认安装,直接运行以下命令即可,其中"8008"为指定的端口号:如果没有安装python,可 ...

最新文章

  1. Nature指明大脑引流“废液”的确切路径
  2. ASP.NET froms 身份验证之Roles
  3. 网站制作时应该如何更合理定位与策划
  4. 分布式任务队列 Celery — Overview
  5. ajax与后台php,怎么在thinkPHP5中使用ajax实现与后台数据交互
  6. 视觉SLAM笔记(55) 位姿图
  7. bash 将二进制转换为十进制_6、计算机进制之二进制、十进制、十六进制之间的转换...
  8. linux图形界面装mysql_ubuntu 安装图形界面
  9. 贝塔斯曼龙宇:李斌能征善战 提前七年兑现了自己的承诺
  10. C# 海康DVR客户端开发系列(3)—— 连接DVR和图像预览
  11. 网络爬虫--抓取图片
  12. 踢向《英雄王座》的面目全非脚
  13. redis 的线程模型
  14. 路由与交换技术(笔记)
  15. C#判断PC是否支持触摸屏
  16. excel报表汇总怎么做?
  17. 名悦集团:深圳人买什么车好?
  18. 前端UI框架ligerui表格汇总功能无法计算全部数据的合计的解决方法
  19. RAD Studio 10.3.1 cannot initialize object parameter of type..........“
  20. 方舟服务器建家位置,《方舟生存进化》五种建家位置!每一种都能暴露建造者的种类!...

热门文章

  1. 人工智能的语义学基础
  2. (附源码)计算机毕业设计SSM基于大数据的高校国有固定资产管理及绩效自动评价系统
  3. 小功能--扫描二维码自动连接WiFi
  4. 超实用的开源项目—如何将WiFi密码转成二维码进行共享
  5. 出入库管理软件如何修改格式
  6. mysql读写分离如何保证数据同步_MySQL 主从同步 、 MySQL 读写分离
  7. java cobar_Cobar源码解析(二)
  8. 控制算法简析3——LKA中PID控制的error选取
  9. Conda 的 yml 文件 Conda/PIP 国内镜像源的添加
  10. 饭后Android 第三餐-XUI框架(XUI介绍,使用方法,控件使用(九个Button,导航栏,可伸缩布局,顶部弹出框))