Tornado的核心是什么?Tornado 的核心是 ioloop 和 iostream 这两个模块,前者提供了 一个高效的 I/O 事件循环,后者则封装了 一个无阻塞的 socket 。 通过向 ioloop 中添加网络 I/O 事件,利用无阻塞的 socket ,再搭配相应的回调函数,便可达到梦 ...
分类:
编程语言 时间:
2020-06-22 01:04:00
阅读次数:
95
因为科研训练的要求,需要实现wifi路由器的抓包以及监听和数据流量分析的软件,故开始学习网络编程的相关知识。首先在语言上,考虑到C++和Python在网络编程上对于我而言都差不多,故选择C++进行网络编程。 C++网络编程基本上都是通过调用Winsock里的api来对套接字进行操作,目前在学习Win ...
分类:
编程语言 时间:
2020-06-21 23:36:14
阅读次数:
70
NIO v.s. IO 传统IO: 面向流 属于阻塞IO 单向管道传输:输入流、输出流 NIO: 面向缓冲区 属于非阻塞IO 使用缓冲区在通道内传输 缓冲区 缓冲区在NIO中负责数据的存取,缓冲区就是数组,用于存储不同数据类型的值,除了boolean,都有相应类型的缓冲区。 缓冲区的核心方法:取ge ...
分类:
其他好文 时间:
2020-06-21 18:00:37
阅读次数:
70
主要参考:http://tutorials.jenkov.com/java-nio/buffers.html 一、Java NIO Buffer Java NIO Buffers are used when interacting with NIO Channels. As you know, da ...
分类:
编程语言 时间:
2020-06-21 13:33:29
阅读次数:
51
最近在写netty相关代码,发现writeAndFlush这个方法既可以在ctx上调用,也可以在channel上调用,这两者有什么区别呢,于是就做了一个小实验。具体的代码在最后 Client端 client的handler 这次我们主要在服务端进行实验,因此client端就简单构造一个handler ...
分类:
Web程序 时间:
2020-06-21 12:02:44
阅读次数:
52
mysql的主从配置 1、主从简介 在现代企业中,数据库显得尤为重要,而储存数据的数据库选择的五花八门,但任何数据库都存在着一种隐患。 想几个问题: 用一台服务器存放数据,若此数据库服务器出问题导致数据库丢失怎么办? 业务量大了,数据多了,访问人多了,一台数据库无法保证服务器质量怎么办? 1.1、主 ...
分类:
数据库 时间:
2020-06-20 23:53:45
阅读次数:
70
一切皆文件,都是文件的操作 #三种I/O设备 ##标准的输入输出 程序:指令+数据 读入数据:Input 输出数据:Output 系统中打开一个文件系统自动分配文件描述符,除了0,1,2是固定的,其他的都是不固定的 打开的文件都有一个fd:file descriptor (文件描述符) ##Linu ...
分类:
系统相关 时间:
2020-06-20 22:06:14
阅读次数:
73
socket # 一、socket # TCP服务端 import socket # 导入socket tcp_sk = socket.socket() # 实例化一个服务器对象 tcp_sk.bind(('127.0.0.1', 8080)) # 服务器绑定一个IP地址和端口 tcp_sk.lis ...
分类:
编程语言 时间:
2020-06-20 21:57:03
阅读次数:
62
应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要 通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)的接口,区分 ...
分类:
其他好文 时间:
2020-06-20 14:11:41
阅读次数:
65
一.面向连接的套接字Socket通信工作流程 为了实现服务器与客户机的通信,服务器和客户机都必须建立套接字。服务器与客户机的工作原理可以用下面的过程来描述。 1.服务器先用 socket 函数来建立一个套接字,用这个套接字完成通信的监听。 2.用 bind 函数来绑定一个端口号和 IP 地址。因为本 ...
分类:
其他好文 时间:
2020-06-20 13:39:37
阅读次数:
54