socket
文章平均质量分 62
sandyznb
这个作者很懒,什么都没留下…
展开
-
TCP基础知识----序列号、确认号
seq 当前端成功发送的数据位数ack 希望对方下一次发送的序号 不是当前端已经接收到的数据量以三次握手为例https://blog.csdn.net/zhangdell/article/details/115380788第一次: SYN = 1,seq = x第二次:SYN = 1,ACK = 1,seq = y,ack = x + 1第三次:ACK = 1,seq = x + 1,ack = y + 1这里边容易给大家一个误导,觉得下一次的ack = 上一次的seq + 1,下一...原创 2021-04-01 21:05:38 · 1015 阅读 · 1 评论 -
TCP基础知识----3次握手 4次挥手
TCP连接由四元组唯一标识一:三次握手协议建立连接 最少需要3次握手。需要client主动发起请求为什么需要3次握手:这是考虑到丢包情况的,如果丢包情况不存在,2次就够了。。。。但是丢包是实实在在存在的如果只握手2次,第二次握手时server发送给client的数据包丢失了,此时server认为已经准备好了,而client一直没有收到确认报文,所以client就不知道服务器是否准备好了,这时client不会给server发数据,而且也会忽略server给client发来的数据。.原创 2021-04-01 19:19:02 · 1147 阅读 · 1 评论 -
TCP基础知识----TCP协议头
一共20个字节1、源端口号:2个字节 表示你这个包是从哪里来2、目的端口号:2个字节 表示你这个包要去哪里!你去访问网页,那么你的目的端口号肯定是80了,那源端口号是大于1024的随机端口。3、序号:4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始;4、确认号:占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收到了A发送...原创 2021-04-01 18:17:15 · 2635 阅读 · 0 评论 -
socket 编程5 client端加入select
server.cpp#define WIN32_LEAN_AND_MEAN#include <WinSock2.h>#include <windows.h>#include <WS2tcpip.h>#include <stdio.h>#include <vector>#pragma comment(lib,"ws2_32....原创 2019-11-11 17:26:48 · 350 阅读 · 0 评论 -
socket 编程4 server端加入select 以便处理更多client
select(_sock + 1, &fdRead, &fdWrite, &fdExcept, NULL);select最后一个参数有三种情况: timeout == NULL等待无限长的时间。等待可以被一个信号中断。当有一个描述符做好准备或者是捕获到一个信号时函数会返回。如果捕获到一个信号,select函数将返回-1,并将变量erro设为EINT...原创 2019-11-11 14:56:24 · 245 阅读 · 0 评论 -
socket 编程3
继续修改前边的代码,网络报文数据格式自定义server#define WIN32_LEAN_AND_MEAN#include <WinSock2.h>#include <windows.h>#include <WS2tcpip.h>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")...原创 2019-11-08 16:45:36 · 167 阅读 · 0 评论 -
socket 编程 2
稍微修改 上一次的代码,手动输入指令 像服务器发送不同的指令,服务器回复不同的消息server#define WIN32_LEAN_AND_MEAN#include <WinSock2.h>#include <windows.h>#include <WS2tcpip.h>#include <stdio.h>#pragma comme...原创 2019-11-08 16:42:38 · 147 阅读 · 0 评论 -
socket 编程 入门篇
server代码段#define WIN32_LEAN_AND_MEAN#include <WinSock2.h>#include <windows.h>#include <WS2tcpip.h>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")int main(){ W...原创 2019-11-08 16:38:00 · 167 阅读 · 0 评论