Pyhton学习——Day30
# 内核态
# 用户态
# 操作系统的运行是在BOIS启动盘读取代码,从硬盘读取到内存中,被操作系统的内核中,一直存在在内存中
# 计算机系统的三层结构:应用软件-->操作系统-->硬件
# 一般应用程序是放在用户态内存中,操作系统一般是放在内核态内存中。
# Socket套接字需要两台及以上物理机做交互的过程,就是需要用户态内存和内核态内存的交互,
# 发消息就是用户态内存1-->内核态内存1(缓存)-->物理介质1-->物理介质2-->内核态内存2(缓存)-->用户态内存2
# 当自己端的内核态缓存区无信息接收时,会卡在recv处,导致客户端和服务端都卡住
############################################################################################################
# 基于TCP的套接字
# 服务端格式
# import socket #导入socket模块
# Sever = socket() #实例化一个套接字对象,创建服务器套接字 Sever = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# Sever.bind() #绑定IP地址和端口号 Server.bind(ip_port)
# Sever.listen() #创建监听链接数 Server.listen(back_log) #半连接池,调试时还要测试
# inf_loop: #服务器内部的大循环
# cs = Sever.accept() #创建接收客户端链接数
# coom_loop: #通讯循环
# cs.recv() #对话接收
# ce.send() #对话发送
# cs.close() #关闭客户端套接字
# Sever.close() #关闭服务器端套接字
#——————————————————————————————————————————————————————#
# 客户端格式
# cs = socket() # 创建客户套接字
# cs.connect() # 尝试连接服务器
# comm_loop: # 通讯循环
# cs.send()/cs.recv() # 对话(发送/接收)
# cs.close() # 关闭客户套接字
#——————————————————————————————————————————————————————#
# 运维需要了解
# 发现系统存在大量TIME_WAIT状态的连接,通过调整linux内核参数解决,
# vi / etc / sysctl.conf
# 编辑文件,加入以下内容:
# net.ipv4.tcp_syncookies = 1
# net.ipv4.tcp_tw_reuse = 1
# net.ipv4.tcp_tw_recycle = 1
# net.ipv4.tcp_fin_timeout = 30
# 然后执行 / sbin / sysctl - p
# 让参数生效。
# net.ipv4.tcp_syncookies = 1
# 表示开启SYN
# Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
# net.ipv4.tcp_tw_reuse = 1
# 表示开启重用。允许将TIME - WAIT
# sockets重新用于新的TCP连接,默认为0,表示关闭;
# net.ipv4.tcp_tw_recycle = 1
# 表示开启TCP连接中TIME - WAIT
# sockets的快速回收,默认为0,表示关闭。
# net.ipv4.tcp_fin_timeout
# 修改系統默认的
# TIMEOUT
# 时间
# 转载自:http://www.cnblogs.com/linhaifeng/articles/6129246.html#_label7
#——————————————————————————————————————————————————————#
# 基于UDP的套接字
# udp服务端
# ss = socket() #创建一个服务器的套接字
# ss.bind() #绑定服务器套接字 [UDP不用listen]
# inf_loop: #服务器无限循环
# cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)
# ss.close() # 关闭服务器套接字
#——————————————————————————————————————————————————————#
# udp客户端
# cs = socket() # 创建客户套接字
# comm_loop: # 通讯循环
# cs.sendto()/cs.recvfrom() # 对话(发送/接收)
# cs.close() # 关闭客户套接字
#——————————————————————————————————————————————————————#
# TCP和UDP接收时都是从缓存区拿,TCP的recv在自己这端的缓冲区为空时,阻塞;
# UDP的recvfrom在自己这端的缓冲区为空时,返回一个空值,UDP表面上可以接收空值
# UDP由于没有链接,所以可以实现并发的效果
Pyhton学习——Day30的更多相关文章
- Pyhton学习——Day26
#多态:多态指的是一类事物有多种形态# import abc# class Animal(metaclass = abc.ABCMeta):# 同一类事物:动物# @abc.abstractclass ...
- pyhton 学习
官方学习文档 https://docs.python.org/3/tutorial/
- 20190320_head first pyhton学习笔记之构建发布
1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...
- Pyhton学习——Day2
Python开发IDE(工具)Pycharm.eclipse1.循环while 条件 #循环体 #条件为真则执行 #条件为假则执行break用于退出所有循环continue用于退出当前循环 2.Pyc ...
- Pyhton学习——Day28
#上下文协议:文件操作时使用with执行# with open('a.txt','w',encoding='utf-8') as f1:# with语句,为了让一个对象兼容with语句,必须在这个对象 ...
- Pyhton学习——Day27
# hasattr(obj,'name')-->obj.name# getattr(obj,'name',default = 'xxx')--->obj.name# setattr(obj ...
- Pyhton学习——Day25
#面向对象的几个方法#1.静态方法@staticmethod,不能访问类属性,也不能访问实例属性,只是类的工具包#2.类方法:@classmethod,在函数属性前加上类方法,显示为(cls)代表类, ...
- Pyhton学习——Day24
# #面向对象设计:# def dog(name,gender,type):# def jiao(dog):# print('One Dog[%s],wfwfwf'%dog['name'])# def ...
- Pyhton学习——Day23
#re模块方法:findall search#findall:返回所有满足匹配条件的数值,放在列表里#search : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象 ...
随机推荐
- uni-app 路由navigate
uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS.Android.H5.小程序等多个平台. 公司最近在写APP应用到了uni-app 我在写的时 ...
- 2015 Multi-University Training Contest 8 hdu 5383 Yu-Gi-Oh!
Yu-Gi-Oh! Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on HDU. Original ID: ...
- HDU 2196 Computer 树形DP经典题
链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...
- 学习笔记一:关于directx sdk的安装于一些概念
关于directx sdk开发环境的安装: 在百度搜索了directx sdk,进入了微软的官网,下载了DXSDK_Jun10.exe 百度网盘:http://pan.baidu.com/s/1o6r ...
- NAT配置
静态NAT Router(config)#ip nat inside source static tcp 192.168.100.2 61.159.62.131 指定地址转换映射 Router(c ...
- tensorflow利用预训练模型进行目标检测(三):将检测结果存入mysql数据库
mysql版本:5.7 : 数据库:rdshare:表captain_america3_sd用来记录某帧是否被检测.表captain_america3_d用来记录检测到的数据. python模块,包部 ...
- angular4父组件向子组件传值,子组件向父组件传值的方法
父组件向子组件传值 @Input 文件目录 父组件: father.template.html <h1>父组件</h1> <cmt-child [data]='dat ...
- React 父组件触发子组件事件
Parent组件 import React from "react"; import Child from "./component/Child"; class ...
- 一个登录页面的spring 逻辑过程
1.首先用户访问login.jsp 2.用户在登录页面输入用户名/密码,提交表单到服务器,Spring根据配置调用LoginController控制器响应登录请求(关键) 3.LoginControl ...
- linux中openssl生成证书和自签证书
1.首先要生成服务器端的私钥(key文件): 命令: openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加密key文件(参数des3便 ...