socket函数

1121 Django基本

南楼画角 提交于 2019-12-05 05:11:25
目录 Django前戏 一、课程导读 1、web应用 2、c/s b/s 架构 3、Python Web框架 二、原生socket服务 三、http协议 什么是http协议 四大特性 http工作原理(事务) 数据格式 响应状态码 动静态网页 jinjia2模板语法 四、框架演变 五、项目演变 Django的创建以及配置 1.三大主流web框架 2.Django 安装 2.1 注意事项 2.2 版本问题 2.3 安装是否成功 2.4 目录设置 3. Django使用 3.1 cmd命令行创建 3.2 pycharm中创建 3.app应用的创建与介绍 app的创建 app的概念 app内文件 注册 4.Django文件功能 4.1 项目同名的文件夹 4.2 应用名文件夹 5.Django必会三板斧 1.HttpResponse 2.render 3.redirect 注意 5.启动项目 1.终端 2.pycharm创建启动项目 生命周期 Django前戏 先纯手撸web代码,然后使用模块 一、课程导读 1、web应用 运行在浏览器上的应用 2、c/s b/s 架构 client/server:客户端服务器架构,C++ brower/server:浏览器服务器架构,Java、Python 底层均是基于socket 3、Python Web框架 a.socket b.页面路由 c

Gevent模块,协程应用

十年热恋 提交于 2019-12-05 03:12:28
Gevent官网文档地址: http://www.gevent.org/contents.html 进程、线程、协程区分 我们通常所说的协程Coroutine其实是corporate routine的缩写,直接翻译为协同的例程,一般我们都简称为协程。 在linux系统中,线程就是轻量级的进程,而我们通常也把协程称为轻量级的线程即微线程。 进程和协程 下面对比一下进程和协程的相同点和不同点: 相同点: 相同点存在于,当我们挂起一个执行流的时,我们要保存的东西: 栈, 其实在你切换前你的局部变量,以及要函数的调用都需要保存,否则都无法恢复 寄存器状态,这个其实用于当你的执行流恢复后要做什么 而寄存器和栈的结合就可以理解为上下文,上下文切换的理解: CPU看上去像是在并发的执行多个进程,这是通过处理器在进程之间切换来实现的,操作系统实现这种交错执行的机制称为上下文切换 操作系统保持跟踪进程运行所需的所有状态信息。这种状态,就是上下文。 在任何一个时刻,操作系统都只能执行一个进程代码,当操作系统决定把控制权从当前进程转移到某个新进程时,就会进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文,然后将控制权传递到新进程,新进程就会从它上次停止的地方开始。 不同点: 执行流的调度者不同,进程是内核调度,而协程是在用户态调度,也就是说进程的上下文是在内核态保存恢复的

PHP websocket之聊天室实现

萝らか妹 提交于 2019-12-04 12:11:40
PHP部分 <?php error_reporting(E_ALL); set_time_limit(0);// 设置超时时间为无限,防止超时 date_default_timezone_set('Asia/shanghai'); class WebSocket { const LOG_PATH = '/tmp/'; const LISTEN_SOCKET_NUM = 9; /** * @var array $sockets * [ * (int)$socket => [ * info * ] * ] * todo 解释socket与file号对应 */ private $sockets = []; private $master; public function __construct($host, $port) { try { $this->master = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // 设置IP和端口重用,在重启服务器后能重新使用此端口; socket_set_option($this->master, SOL_SOCKET, SO_REUSEADDR, 1); // 将IP和端口绑定在服务器socket上; socket_bind($this->master, $host, $port); //

libevent笔记2:Hello_World

断了今生、忘了曾经 提交于 2019-12-04 12:04:46
本篇通过libevent提供的Hello_World demo简单介绍基于libevent的TCP服务器的实现 listener listener是libevent提供的一种监听本地端口的数据结构,在有客户端的连接到来时调用给定的回调函数。 bufferevent 上一篇 中的event是不带缓存区的,读写直接在文件描述符所指向的对象(上一节中是有名管道)上进行。bufferent则是带缓冲区的event,对bufferevnet的读写操作不会直接作用在I/O上,而是对输入或输出缓存区操作。对bufferevent的读操作会从文件描述符相应的输入缓存区读数据;而写操作会将数据写进文件描述符相应的输出缓存区。 Hello_World 以下是官网提供的demo #include <string.h> #include <errno.h> #include <stdio.h> #include <signal.h> #ifndef _WIN32 #include <netinet/in.h> # ifdef _XOPEN_SOURCE_EXTENDED # include <arpa/inet.h> # endif #include <sys/socket.h> #endif #include <event2/bufferevent.h> #include <event2/buffer

BIO/NIO/AIO

女生的网名这么多〃 提交于 2019-12-04 11:44:22
1. 最简单的网络通信——同步阻塞通信(BIO) 首先来看一个传统简单的网络通信案例,该案例是基于同步阻塞的I/O,服务端代码如下 public class Server extends Thread{ private ServerSocket serverSocket; public Server(int port) throws IOException { serverSocket = new ServerSocket(port, 1000); //端口号,以及运行连接可以保存的最长队列 serverSocket.setSoTimeout(1000000); } public void run() { while(true) { try { System.out.println("等待远程连接,端口号为:" + serverSocket.getLocalPort() + "..."); Socket server = serverSocket.accept(); System.out.println("远程主机地址:" + server.getRemoteSocketAddress()); DataInputStream in = new DataInputStream(server.getInputStream()); Thread.sleep(2000); System

我的vc笔记心得

点点圈 提交于 2019-12-04 07:52:56
位图 1. 准备图片: 下载好图片,另存为桌面,右击编辑,另存为 2. 创建单文档项目: 点击菜单项 插入-〉资源-〉Bitmap-〉引用 ,选择 全部文件,并选择创建好的 16位图 ondraw插入如下代码: void CBitmaptestView::OnDraw(CDC* pDC) { CBitmaptestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CBitmap Bitmap; Bitmap.LoadBitmap (IDB_BITMAP1); CDC MemDC; MemDC.CreateCompatibleDC(pDC); CBitmap * OldBitmap = MemDC.SelectObject(&Bitmap); BITMAP bm; Bitmap.GetBitmap(&bm); pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY); pDC->SelectObject(OldBitmap); // TODO: add draw code for native data here } 文字操作 1. 创建单文档项目: void CRrView::OnDraw(CDC* pDC) { CRrDoc* pDoc = GetDocument();

随笔c

匆匆过客 提交于 2019-12-04 07:52:39
弹窗查询 1. 插入一个 dialg ,设计界面如图 2. 新建类, serch ,确定,查看类向导 3. 4. 查询内添加代码: void COdbctView::OnButton4() { // TODO: Add your control notification handler code here search f; this->UpdateData(true); if(f.DoModal()==IDOK) { CString s="name"; m_pSet->Close(); m_pSet->m_strFilter=s+"='"+f.m_value+"'"; m_pSet->Open(); this->UpdateData(false); } } 5. 查询运行成功 增 右击插入dialog,设计如图 2. 新建一个类 3. 添加变量 4. 5 void COdbctView::OnAdd() { // TODO: Add your control notification handler code here insert d; if(d.DoModal()==IDOK){ m_pSet->AddNew(); m_pSet->m_name=d.m_name; m_pSet->m_sex =d.m_sex; m_pSet->m_age =d.m_age; m_pSet-

Pipe——高性能IO

五迷三道 提交于 2019-12-03 22:54:57
System.IO.Pipelines 是一个新的库,旨在简化在.NET中执行高性能IO的过程。它是一个依赖.NET Standard的库, 适用于所有.NET实现 。 Pipelines诞生于.NET Core团队,为使Kestrel成为业界最快的Web服务器之一。最初从作为Kestrel内部的实现细节发展成为可重用的API,它在.Net Core 2.1中作为可用于所有.NET开发人员的最高级BCL API(System.IO.Pipelines)提供。 它解决了什么问题? 为了正确解析Stream或Socket中的数据,代码有固定的样板,并且有许多极端情况,为了处理他们,不得不编写难以维护的复杂代码。 实现高性能和正确性,同时也难以处理这种复杂性。Pipelines旨在解决这种复杂性。 有多复杂? 让我们从一个简单的问题开始吧。我们想编写一个TCP服务器,它接收来自客户端的用行分隔的消息(由 \n 分隔)。(译者注:即一行为一条消息) 使用NetworkStream的TCP服务器 在Pipelines之前用.NET编写的典型代码如下所示: async Task ProcessLinesAsync(NetworkStream stream) { var buffer = new byte[1024]; await stream.ReadAsync(buffer, 0,

DDOS 单例

百般思念 提交于 2019-12-03 06:26:52
DDOS.H #pragma once //g++ ../../../Main.cpp ../../../DDOS.cpp -lpthread #include <stdio.h> #include <ctype.h> #include <unistd.h> #include <fcntl.h> #include <signal.h> #include <sys/time.h> #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include <netdb.h> #include <errno.h> #include <stdlib.h> #include <time.h> #include <arpa/inet.h> #include <pthread.h> // -lpthread // ./a.out www.baidu.com 80 struct ip { unsigned char hl; unsigned char tos; unsigned short total_len; unsigned short id; unsigned short frag_and_flags; unsigned char ttl; unsigned char proto; unsigned short

python3黑帽子渗透笔记第二章--网络基础

时光怂恿深爱的人放手 提交于 2019-12-03 02:32:10
1 先来看看不可少的socket模块 (1)tcp_client.py 在渗透测试过程中,创建一个tcp客户端连接服务,发送垃圾数据,进行模糊测试等。 (2)udp_client.py 2 nc工具的实现   进入服务器以后如果没有安装nc,这个时候却有,这样子可以创建简单的客户端和服务器传递使用的文件,或者创建监听让自己拥有控制命令行的操作权限 需要学习的模块   getopt模块处理命令行   threading模块   socket模块   subprocess模块 1 #!/usr/bin/env python3 2 # coding=utf-8 3 import sys 4 from socket import * 5 import getopt # 用来处理命令行参数 6 import threading 7 import subprocess # 启动一个shell,并控制输入输出 8 9 # -e和-p有问题,mac下运行没什么问题,win下有问题,运行的命令会出现问题。 10 listen = False 11 command = False 12 upload = False 13 execute = "" 14 target = "" 15 upload_destination = "" 16 port = 0 17 18 #帮助提示 19 def usage