在使用TCP协议进行数据的传输之前,客户端与服务器端需要建立TCP Connection,即建立连接,之后两端才能进行数据的传输。 下面堆TCP连接“三次握手”的过程进行说明。 1、相关概念 首先,我们需要了解TCP数据报的首部的结构(TCP数据报包括首部以及数据报部分),如下图: 其中需要注意的字 ...
分类:
其他好文 时间:
2020-06-08 09:26:56
阅读次数:
74
一.tcp协议基本语法 import socket 客户端 1 .创建一个socket对象 sk = socket.socket() 2 .与服务器进行连接 sk.connect(("127.0.0.1",9000)) 3.发送数据(二进制的字节流) sk.send("字符串".encode("ut ...
分类:
编程语言 时间:
2020-06-07 23:04:56
阅读次数:
99
我们先看一下下面这张图: 可以看到这是一个简易的聊天室,两个窗口的消息是实时发送与接收的,这个主要就是用我们今天要讲的websocket实现的。 websocket是什么? websocket是一种网络通信协议,我们都知道http协议,http协议只能从客户端主动发起,不能从服务端推送数据到客户端, ...
分类:
Web程序 时间:
2020-06-06 17:02:07
阅读次数:
66
Unix errno值、 只要一个Unix函数(如,某个套接字函数)中有错误发生,全局变量errno就被设置为一个指明该错误类型的正直,函数本身则通过返回-1. errno的值只在函数发生错误时被设置,如果函数不返回错误,errno的值就没有定义。 errno的所有证书错误值都是常值,具有以“E”开 ...
分类:
其他好文 时间:
2020-06-06 16:52:43
阅读次数:
76
一 基本概念 IO(BIO)和NIO的区别:其本质就是阻塞和非阻塞的区别。 阻塞:应用程序在获取网络数据的时候,如果网络传输数据很慢,那程序就一直等着,直到传输完毕为止。 非阻塞:应用程序直接可以获取已经准备就绪的数据,无需等待。 IO为同步阻塞形式,NIO为同步非阻塞,到JDK1.7,NIO为异步 ...
分类:
编程语言 时间:
2020-06-06 12:51:26
阅读次数:
81
TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)第二次握手:服 ...
分类:
其他好文 时间:
2020-06-06 11:17:49
阅读次数:
50
C/S架构 """ client< >server 客户端软件send 服务端软件recv 操作系统 操作系统 计算机硬件《 物理介质 》计算机硬件 """ B/S架构 #brower< >server 网络通信 #网络存在的意义就是跨地域数据传输 >称之为通信 #网络=物理传输介质+互联网通信协议 ...
分类:
其他好文 时间:
2020-06-06 10:54:54
阅读次数:
97
一文彻底搞懂 TCP三次握手、四次挥手过程及原理 TCP 协议简述 TCP 提供面向有连接的通信传输,面向有连接是指在传送数据之前必须先建立连接,数据传送完成后要释放连接。 无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过 ...
分类:
其他好文 时间:
2020-06-06 10:44:38
阅读次数:
46
软件开发的两种结构 BS/CS CS 客户端 服务器 C/S结构在技术上很成熟 它的主要的特点是交互性强,具有安全的存取模式,网络 通信量第、响应速度快,利于处理大量的数据 BS架构: 浏览器 服务器结构 客户向浏览器发送请求 浏览器再向服务器发送请求 分布性强 开发简单 只需维护服务器 BS与CS ...
分类:
其他好文 时间:
2020-06-06 00:42:05
阅读次数:
80
socket : 通络通信过程中,信息拼接的工具(中文:套接字)开发中,一个端口只对一个程序生效,在测试时,允许端口重复捆绑 (开发时删掉), 在bind方法之前加上这句话,可以让一个端口重复使用: sk.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADD ...
分类:
其他好文 时间:
2020-06-05 21:17:12
阅读次数:
78