原理:利用套字节发送命令,在服务端执行,并将执行的结果返回客户端。 在python3中发送文本使用:send()把字符串encode进行编码,接受recv()把字符串使用decode进行解码。 # coding:utf-8 import socket import os # 创建套字节 s = so ...
分类:
编程语言 时间:
2019-10-20 18:18:39
阅读次数:
124
三次握手建连接: 建立双向通道,建立好连接。 三次握手过程: 第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认 第二次握手:服务器收到syn包,确认客户的SYN,同时发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手: ...
分类:
其他好文 时间:
2019-10-17 23:43:20
阅读次数:
108
IO模型介绍 同步\异步and阻塞\非阻塞(重点) 同步: 异步: 阻塞: 非阻塞: 小结: 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案 ...
分类:
其他好文 时间:
2019-10-13 10:31:56
阅读次数:
63
MongoDB 升级测试步骤:1、MongoDB版本升级顺序3.2->3.4->3.6->4.0 不能跨版本升级2、升级到3.4后,您不能降级到3.2.7或更早版本。您只能降级到3.2.8或更高版本3、先升级所有副本集中的Secondary4、将Primary节点降级为Secondary节点5、升级 ...
分类:
数据库 时间:
2019-10-10 22:24:06
阅读次数:
121
在Windows系统中使用libevent时,编译报错:error LNK2019: 无法解析的外部符号 __imp_recv,该符号在函数 evthread_notify_drain_default 中被引用 解决方法: 右键项目属性, 配置属性->链接器->输入->附加依赖项,添加 ws2_32 ...
分类:
其他好文 时间:
2019-10-10 11:08:51
阅读次数:
96
recv相对于read有什么区别呢? 其实它跟read函数功能一样,都可以从套接口缓冲区sockfd中取数据到buf,但是recv仅仅只能够用于套接口IO,并不能用于文件IO以及其它的IO,而read函数可以用于任何的IO; recv函数相比read函数多了一个flags参数,通过这个参数可以指定接 ...
分类:
其他好文 时间:
2019-10-10 00:15:50
阅读次数:
81
一、初识socket socket 是网络连接端点,每个socket都被绑定到一个特定的IP地址和端口。IP地址是一个由4个数组成的序列,这4个数均是范围 0~255中的值(例如,220,176,36,76);端口数值的取值范围是0~65535。端口数小于1024的都是为众所周知的网络服务所保留的 ...
分类:
编程语言 时间:
2019-10-06 00:20:18
阅读次数:
113
socket套接字介绍 recv的工作原理 基于UDP协议的网络通信 socket循环+链接通讯 基于socketTCP协议的应用示例:远程执行指令 粘包现象 缓存区 产生粘包现象的两种情况 粘包的解决方案 python 问题的根源在于,接收端不知道发送端将要传送的字节流的长度,所以解决粘包的方法就 ...
分类:
其他好文 时间:
2019-10-05 00:39:42
阅读次数:
63
web应用与web框架本质 概念 什么是web应用程序呢? Web应用程序就一种可以通过互联网来访问资源的应用程序, 用户可以只需要用一个浏览器而不需要安装其他程序就可以访问自己需要的资源. 应用软件通常有两种架构: B/S架构和传统的C/S架构. C/S架构是客户端/服务端程序, 用户需要访问服务 ...
分类:
其他好文 时间:
2019-09-23 22:11:07
阅读次数:
106
Linux进程死锁定位最近定位一个服务问题时发现telnet某个端口,无法链接。无奈之下只能一步步排查。端口是否存在ss-l|grepLISTEN|grep9999如果端口存在那么可以观察该端口上的recv-qsend-q如果是发生死锁一般情况下这两个队列只会增加(当然当服务处理过慢时也会导致包堆积)Recv-QSend-QLocalAddress:PortPeerAddress:Port0102
分类:
系统相关 时间:
2019-09-20 10:29:38
阅读次数:
211