首页 文章 精选 留言 我的

精选列表

搜索[summary],共1578篇文章
优秀的个人博客,低调大师

Python网络编程(weekly summary1)

网络的目的是什么? 用于信息传输、接受 能把各个点、面、体的信息链接到一起 实现资源的共享 OSI模型: 应用层:提供程序服务 表示层:数据加密、优化、压缩 会话层:建立链接、传输服务 传输层:提供数据传输服务 网络层:路由选择 网路互联 连表层:链接交换 物理层:硬件、接口、网卡规定等 特点: 将功能分开来达到高内聚低耦合 让开发更为清晰 什么是网络协议? 是为了完成计算机网络通讯而制定的规则、约定、标准 各模型使用的协议: 应用层:TFTP(文件传输)、HTTP(超文本传输协议)、DNS(域名解析)、SMTP(邮件传输) 传输层:TCP(面向有链接的可靠的传输服务)、UDP(面向无连接的不可的传输靠服务) 网络层:IP(IP地址)常用IPV4:点分十进制 取值0~256之间(32位) IPV6::128位 物理层:IEEE 特殊IP: 127.0.0.1 本机IP 0.0.0.0 自动使用本地可用网卡IP 192.168.1.0 代表网段 192.168.1.1 通常为网关地址 192.198.1.255 广播地址 端口: 取值范围1~65535之间 1~255 一些通用端口 256~1023 系统端口 1024~65535 自用端口 Linux命令: ifconfig 查看本机IP ping IP 查看延迟 ps -aux 查看系统进程信息 chmod 设置文件权限 nice -9 ./hello.py 以9的优先级运行 pstree 查看进程树 ps -ajx 查看父子进程ID Linux下文件类型: bcd -lsp b(快 设备文件) c(字符设备文件) d(目录) -(普通文件) l(链接文件) s(套接字文件) p(管道文件) ps -aux 查询结果的 STAT表示进程状态: D 等待态 阻塞 不可中断等待态 S 等待态 睡眠 可中断等待态 T 等待态 暂停 暂停执行 R 运行态(就绪态) Z 僵尸 + 前台进程(在终端运行) < 有较高优先级的进程 N 较低优先级的进程 s 回话组 l 有子进程链接 进程优先级: 取值范围:-20~19 -20最高 Python socket模块 socket.gethostname() 获取本机名 socket.gethostbyname("主机名") 利用主机名获取IP soccket.gethostbtname(“IP”) 获取本地IP IP的十六进制转换: socket.inet_aton(IP) 十进制转十六进制 socket.inet_atoa(十六进制) 十六进制转十进制 socket.gethostbyaddr('127.0.0.1') 返回值:元组(主机, 别名,ip地址) socket.getservbyname("程序名") 获取程序端口 套接字:是通过编程语言提供的套接字编程借口 传输层服务: tcp:(SOCK_STREAM) 面向有链接的可靠的传输服务 流式套接字 1.创建套接字: socket = socket.socket() 2.绑定地址: socket.bind 3.设置监听: socket.listen() 4.等待客户端链接: socket.accept() 5.消息收发: socket.recv(4096) socket.send(“”) 6.关闭套接字: socket.close() 客户端: 1.创建套接字 socket.socket.socket() 2.发起链接 socket.connect(地址) 3.消息收发 socket.recv(1024) 收消息 socket.send("") 发消息 socket.sendall(): 事物发消息 成功返回None 失败异常 4.关闭套接字 socket.close() recv特性: 建立链接的另一端被断开,会返回一个空字符串 从缓冲区取内容 send特性: 另一端不纯在产生一个pipe Broken 异常 向缓冲区写内容 缓冲区: 减少和和磁盘交互协调数据收发 提高效率 粘包: 由于tcp是数据流套接字的原因每次发送的数据间 没有边界一次取不完下次取数据时会形成粘包 udp:(SOCK_DGRAM) 面向无连接的不可靠的传输服务 数据报套接字 1.创建套接字: socket = socket.socket(AF_INET,SOCK_DGRAM) 2.绑定地址: socket.bind() 3.收发消息: socket.recvfrom() socket.sento() 4.关闭套接字: socket.close() 客户端: 1.创建套接字: socket = socket.socket() 2.收发消息; socket.recvform() socket.sendto(“”, 地址) 3.关闭套接字: socket.close() sys.argv() 命令行获取参数 返回值: 元组:sys.argv[0] 开始 空格隔开 引号隔开 套接字属性方法: 套接字的属性: socket.type 地址类型: socket.family 套接字IO描述符: socket.fileno() 系统IO描述符: sys.stdin = 0 sys.stdout = 1 sys.stderr = 2 获取套接字地址: socket.getsockname() 获取套接字客户端地址: socket.getpeername() 设置端口重用: socket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) 获取套接字选项值: socket.getsockopt() 设置为非阻塞状态: socket.setblocking(False) 超时检测: socket.settimeout(sec) HTTP协议(超文本传输协议): 网站浏览器获取网页的一种协议 并且所有的www.文件都必须遵守这个标准 HTTP请求: 1.请求行: 说明具体的请求类别和内容 GET /index.html /HTTP/1.1 请求类别 请求内容 协议版本 请求类别: GET: 获取网络资源 POST: 提交一定的附加数据 HEAD: 获取响应头 PUT: 更新服务器资源 DELETE: 删除服务器资源 CONNECT: 未使用 TRACE: 用于测试 OPTIONS: 获取服务器性能信息 2.请求头: 对请求的具体描述 3.空行 4.请求体: 具体的参数或提交的内容 HTTP响应: 1.响应行:反馈具体的响应情况 HTTP/1.1 20 OK 版本协议 响应码 附加信息 响应吗: 1xx:提示信息,表示请求已经接收 2xx:响应成功 3xx:响应需要定向(重新记载链接第三方链接) 4xx:客户端错误 5xx:服务器端错误 2.响应头: 对响应内容的具体描述 3.空行 4.响应体: 将客户端请求内容进行返回 IO: 在内存中存在数据交换的操作可以认为是IO操作(输入输出) IO密集程序: 大量的IO操作,消耗CPU较少 CPU密集程序: 大量的内存CPU运算,IO相对较少 IO分类: 阻塞IO: 因为某些条件没有达成 导致程序堵塞 如:input函数 非阻塞IO: 改变阻塞函数的状态不让其阻塞 IO多路复用: 通过一个监测 监控多个IO事件的行为, 哪个IO事件准备就绪就执行哪个IO事件 IO准备就绪: IO事件即将发生时的临界状态 select模块 监控IO事件 rs, ws, xs = select(rlist, wlist, xlist[, timeout]) rlist: 等待处理的IO wlist: 主动处理的IO xlist: 出错希望去处理的IO 位运算: 按照二进制位进行位运算操作 & 按为与 | 按位或 ^ 按位异或 << 左异 >>右移 poll方法实现IO多路复用: 1.创建poll对象: p = select.poll 2.注册关注的IO: p.register(s, POLLIN | PLLERR) 不关注: p.unregister(s) 事件类别: POLLIN POLLOUT POLLERR POLLHUP POLLPRI rlist wlist xlist 断开 紧急处理 3.监控IO: events = p.poll() 功能:监控关注的IO事件 返回值: 返回发生IO事件 events是一个列表[(fileno, evnet), (), ()....] 每个就绪IO对应一个元组(描述符,就绪事件) IO地图:{s.fileno():s} 4.处理IO事件 本地套接字: 作用: 用于本地文件不同程序间进行数据传输 本地套接字传输流程: 1.创建本地套接字对象 sockfd = socket(AF_UNIX, SOCK_STREAM) 2.绑定套接字文件,如果文件不存在则自动创建 存在则报错 sockfd.bind(file) 3.监听 listen 4.消息收发 recv send 多任务编程: 通过程序利用计算机的多个核心达到同时执行多个任务的目的 因此达到提升程序运行效率的目的 并行: 多个计算机核心在同时处理多个任务, 这时多个任务之间是并行关系 并发: 同时运行多个任务,内核在多个任务之间的不断切换, 达到多个任务都会执行的处理效果 此时多个任务之间是并发关系 程序: 可执行文件,是静态的,只占有磁盘 进程: 是一个动态过程 程序的运行过程 CPU时间片: 如果有个进程占有CPU此时我们称为该进程占有CPU的时间片 多个进程任务或轮流占有CPU时间片并形成并发效果 进程特征: 进程是操作系统分配资源的最小单元 每个进程拥有自己独立的运行空间(4个G的虚拟内存空间) 进程之间相互独立各不影响 进程的状态: 三态: 就绪状态: 进程具备执行条件,等待系统分配处理器资源进入运行态 运行态: 进程占有CPU处于运行状态 等待态: 进程暂时不具备运行条件,需要阻塞等待 五态: 在三态的基础上增加新建和终止态 新建: 创建一个新的程序,获取系统资源的过程 终止: 进程执行结束,释放资源的过程 OS模块: 判断一个文件是否存在: os.path.exists(file) 删除文件: os.remove(file) os.unlink(file) 创建进程: os.fork() 获取进程id: os.getpid() 获取父进程id: os.getppid() 退出一个进程: os.exit() sys.exit(退出提示) sys.exit() 可以通过捕获 SystemExit异常退出 孤儿进程: 当父进程优先于子进程退出,此时子进程就会成为孤儿进程 孤儿进程会被系统指定进程收养 退出后会自动处理 僵尸进程: 当子进程优先于父进程退出,父进程没有处理子进程的退出状态 就会变成僵尸进程 僵尸进程会滞留PCB 消耗内存资源 如何避免僵尸进程的产生: 1.父进程先退出 2.父进程处理子进程状态 处理僵尸进程: PID,status = os.wait(): wait 在父进程中阻塞等待处理子进程的退出 返回退的子进程的怕pid和退出状态 pid,status = os.waitpid(pid,option): waitpid 在父进程阻塞等待处理子进程的退出 参数 : pid -1 表示等待任意子进程退出 >0 表示等待对应PID号的子进程退出 option 0 表示阻塞等待 WNOHANG 表示非阻塞 返回退的子进程的怕pid和退出状态 利用二级子进程: 父进程创建子进程等待进程退出 子进程创建下一个进程,然后立即退出 二级子进程成为孤儿进程 处理具体工作 multiprocessing模块 process() 功能: 创建进程对象 参数: target:函数对象 name 给进程新名称() args:元组 用来给target函数位置传参 kwargs:字典 用来给target函数键值传参 启动进程: p.start() 调用绑定函数有子进程运行 等待子进程退出: p.join([超时检测]) 不使用join回收可能后产生僵尸进程 使用multiprocessing创建进程子进程同样复制父进程的全部内存空间 之后有自己的独立空间 执行上互不干扰 子进程也有自己的PID特有资源等 使用multiprocessing创建子进程,一般父进程功能就是只用来创建子进程 回收子进程,返回事件交给子进程完成

优秀的个人博客,低调大师

访问Storm ui界面,出现Nimbus Summary或Supervisor Summary时有时无的问题解决(图文详解)

问题详情 问题分析 解决办法1 [hadoop@master storm]$ su root Password: [root@master storm]# ntpdate pool.ntp.org 21 May 19:57:55 ntpdate[10584]: step time server 173.255.246.13 offset 31.766614 sec [root@master storm]# [hadoop@slave1 storm]$ su root Password: [root@slave1 storm]# ntpdate pool.ntp.org 21 May 19:58:08 ntpdate[6337]: step time server 173.255.246.13 offset 338.531206 sec [root@slave1 storm]# [hadoop@slave2 storm]$ su root Password: [root@slave2 storm]# ntpdate pool.ntp.org 21 May 19:58:17 ntpdate[5787]: step time server 173.255.246.13 offset 49.728104 sec [root@slave2 storm]# 解决办法2 清除storm存储的目录,重新执行生成。 解决办法3 去查看日志。 http://master:9999/index.html 成功! 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/6885771.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

台湾精准医疗计划:GWAS-summary statistics完全公开可下载

小编发现台湾精准医疗计划(TPMI)的成果值得点赞,原因是他的开放性,当然大陆也有多个比这个项目队列多得多的项目,但是碍于各种利益,仅局限于小团体和小圈子,这很难实现数据资源的共享,也是巨大的浪费。期待国人的科研和数据资源也变得更加开放,特别是AI时代,只有开放合作才能实现成果。传统的小团体已经很难做出大成果。之前听说生物大模型方向的研究,都是上百人两周通力合作出一篇成果的,这种效率,真的是奇迹呀!

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册