客户端:客户端的代码无需改动 import socket client = socket.socket() client.connect(("127.0.0.1",8777)) while 1: msg = input("请输入信息:(exit退出)").encode("utf8") if msg == "exit": break client.send(msg) server_msg = client.recv(1024).…
主要类型 该模块有四个比较主要的类,其中常用的是 TCPServer 和 UDPServer. 1. TCPServer 2. UDPServer 3. UnixStreamServer,类似于TCPServer提供面向数据流的套接字连接,但是旨在UNIX平台上可用: 4. UnixDatagramServer,类似于UDPServer提供面向数据报的套接字连接,但是旨在UNIX平台上可用: 这四个类型同步地处理请求,也就是说一个请求没有完成之前是不会处理下一个请求的,这种模式当然不适合生产环境…
一:基于udp协议(数据报协议)的套接字:和tcp协议的套接字对比而言,由于udp是无链接的,所以先启动哪一端都不会报错,而且udp也不会有粘包 现象,所以对比下来,tcp协议的话传输数据更加可靠,但是传输数据的效率低,而udp协议的话,传输数据 效率高,但是传输数据不可靠.udp协议套接字简易版本,如图1 二:socketserver模块:借助socketserver模块实现tcp和udp的并发,如图2和图3 三:并发编程: 进程理论: 1:什么是进程:进程指的是一个正在进行/运行的程序,进程…
思维导图文件:https://files-cdn.cnblogs.com/files/benjieming/SocketServer%E6%A8%A1%E5%9D%97%E4%B8%8E%E7%AE%80%E5%8D%95%E5%B9%B6%E5%8F%91%E6%9C%8D%E5%8A%A1%E5%99%A8.zip…
python提供了两个级别访问的网络服务: 低级的网络服务支持基本的socket,它提供了标准的BSD sockets API,可以访问底层操作系统socket接口的全部方法 高级别的网络服务模块socketServer,它提供了服务器中心类,可以简化网络服务器的开发.   1,利用 socketserver 模块做一个简单的并发编程 # server.py import socketserver ​ class MyServer(socketserver.BaseRequestHandler)…
一.UDP协议(数据报协议) 1.何为udp协议 不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包. 以太网头 ip头                      udp头                            数据                                            2.udp协议的特点 (1)传输数据以数据报的形式传送.因为数据以数据包的形式发送,所以没发送一次就会接收一次 from socket…
基于udp协议的套接字.socketserver模块 一.UDP协议(数据报协议) 1.何为udp协议 不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包. 以太网头 ip头                      udp头                            数据                                            tcp协议(流式协议) 2.udp协议的特点 (1)传输数据以数据报的形式传送.因…
paramiko模块是一个远程连接服务器,全真模拟ssh2协议的python模块,借助paramiko源码包中的demos目录下:demo.py和interactive.py两个模块实现简单的堡垒机+审计功能.编写的run_demo.py脚本,可以根据登陆堡垒机的用户信息在数据库查询该用户所有可以登陆的服务器列表,用户可以根据索引选择登陆.为防止用户退出脚本后不中断shell会话,导致不安全的因素,故在用户退出run_demo.py脚本时,会结束已经连接的shell会话,直接退出堡垒机. 一.修…
线程:进程中负责程序执行的执行单元. 多线程:在1个进程中存在多个线程. 进程只是用来把资源集中在一起,而线程才是cpu上的执行单位. 每个进程都会默认有一个控制线程也叫作主线程. 进程之间是竞争关系,线程之间是协作关系. 多线程和进程之间的区别? 1.线程开销小,不需要申请内存空间,创建速度快.进程需要申请内存空间,创建速度慢. 2,同一进程下的多个线程,共享该进程的地址空间. 3,改变主进程 ,无法影响子进程,改变了主线程,影响其他线程.原因(该控制线程可以执行代码从而创建新的线程,该主线程…
一.socket的更多方法介绍 # 服务端套接字函数 s.bind() # 绑定(主机,端口号)到套接字 s.listen() # 开始TCP监听 s.accept() # 被动接受TCP客户的连接,(阻塞式)等待连接的到来 # 客户端套接字函数 s.connect() # 主动初始化TCP服务器连接 s.connect_ex() # connect()函数的扩展版本,出错时返回出错码,而不是抛出异常 # 公共用途的套接字函数 s.recv() # 接收TCP数据 s.send() # 发送TC…