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 : #函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象 ...
随机推荐
- Nginx+php-fpm 502 504问题
常出现502,504错误 思路: 增大nginx与php-fpm通信时的缓存文件大小与个数 静态绑定5个php-fpm进程,减少频率启动进程的开销 利用sock文件代替tcp端口通信 解决办法: 调整 ...
- 洛谷P3807 【模板】卢卡斯定理_组合数学模板
Code: #include<cstdio> using namespace std; typedef long long LL; const int maxn=1000000+2; LL ...
- Java Spring 两大特色
0 引言 本文主要描述的是Spring常用的两大特色功能:AOP和IoC容器 1 IoC Spring的IoC:就是常说的“控制反转”,也又叫依赖注入的(DI). 优点:IoC最大的好处就是把对象生成 ...
- C语言基础 (6) 类型转换,数组与随机数
复习 1.隐式转换 Double a Int b = 1 A = b //编译器自动转换把b转换为double类型后 再给a赋值(隐式转换) 2.强制类型转换 (变量)类型名 Int a = 1 // ...
- js操作table中tr的顺序,实现上移下移一行的效果
总体思路是在table外部加个div,修改div的innerHtml实现改变tr顺序的效果 具体思路是 获取当前要移动tr行的rowIndex,在table中删除掉,然后循环table的rows,到了 ...
- HDU1867 - A + B for you again
Generally speaking, there are a lot of problems about strings processing. Now you encounter another ...
- 深入了解Python--元组
1. 对原元组进行插入 2. 元组的嵌套使用 3. for循环使用嵌套元组实例 4. 命名元组避免对分片混淆
- 邓_ php SESSION
学会php session可以在很多地方使用,比如做一个后台登录的功能,要让程序记住用户的session,其实很简单,看了下面的文章你就明白了. PHP session用法其实很简单它可以把用户提交的 ...
- BA-楼宇自控系统设计论文(转载)潘翌庆 元晨
楼宇自控系统设计 潘翌庆 元晨 一.概述 楼宇自控系统(Building Automation System-BAS)是智能建筑中不可缺少的重要组成部分,在智能建筑中占有举足轻重的地位.它对建筑物内部 ...
- static final常量变量的正确书写规范
AccountConstants.java类 命名:常量类以Constants单词命名结尾 package com.paic.pacz.core.salesmanage.util; import ja ...