从linux源码看socket的阻塞和非阻塞 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情。 大部分高性能网络框架采用的是非阻塞模式。笔者这次就从linux源码的角度来阐述socket阻塞(block)和非阻塞(non_block)的区别。 本文源码均来自 ...
分类:
系统相关 时间:
2020-06-04 13:42:55
阅读次数:
58
Tomcat有两个核心功能: 1.处理 Socket 连接,负责网络字节流与 Request 和 Response 对象的转化。 2.加载和管理 Servlet,以及具体处理 Request 请求。 因此 Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)来分别 ...
分类:
其他好文 时间:
2020-06-04 00:57:37
阅读次数:
96
nio使用通道和缓冲区来进行数据的读写操作。 FileChannel 对文件进行操作 SocketChannel tcp ServerSocketChannel tcp DatagramChannel udp 一般来说分为下面几步:1、建立通道2、创建缓冲区3、使用通道对缓冲区进行读写操作 建立通道 ...
分类:
编程语言 时间:
2020-06-03 23:31:57
阅读次数:
75
服务器端: #include <stdio.h> #include <unistd.h> #include <sys/socket.h> #include <stdlib.h> #include <ctype.h> #include <arpa/inet.h> #include <sys/types ...
分类:
其他好文 时间:
2020-06-03 21:59:36
阅读次数:
94
题目 平面上有若干个点,选出个点集,要求这个点集是一个凸包(凸包上没有三点共线)。 这个点集的价值为$xa^b^c^$,其中$x$为凸包的顶点数,$y$为凸包内或凸包边界上的点数,$z$为不在凸包内的点数。 题目保证$b=a+c$ 求所有满足条件的点集的价值和。 \(n\leq 2000\) 正解 ...
分类:
其他好文 时间:
2020-06-03 20:03:31
阅读次数:
113
一、nginx之tcp_nopush、tcp_nodelay、sendfile 1、TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_NODELAY选项。这样就可以使缓冲区中的数据立即发送出去。 Nginx的 TCP_NODELAY ...
分类:
其他好文 时间:
2020-06-03 17:20:29
阅读次数:
58
Netty java Mina Supersocket .net ACL 非阻塞异步 IO Netty 一款基于NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高,两张图让你了解BIO和NIO的区 M ...
分类:
其他好文 时间:
2020-06-03 15:15:39
阅读次数:
68
ix系统上,mysql的登陆方式有两种,分别是socket和tcp/ip方式登陆。当server和client在同一台服务器上的时候,我们可以直接用mysql命令登陆。[root@mysql ~]# mysqlWelcome to the MySQL monitor. Commands end wi ...
分类:
数据库 时间:
2020-06-03 00:48:38
阅读次数:
96
Reactor 模型不再介绍,网上有很多。在实现的过程中有一些收获: 1. Reactor 广义上说,事件发生时便会触发为事件注册的处理函数。在注册感兴趣的事件时,需要将处理函数一并绑定到事件上,在 NIO 中我们通过 SelectionKey 的 attachment 携带函数对象。 2. 使用 ...
分类:
其他好文 时间:
2020-06-03 00:36:43
阅读次数:
56
1.多进程实现并发的socket # server.py?import socketfrom multiprocessing import Processdef chat(conn): while True: try: ret = conn.recv(1024).decode('utf-8') co ...
分类:
编程语言 时间:
2020-06-03 00:27:06
阅读次数:
61