c++游戏服务器编程学习笔记(一)TCP/IP
1.
c++游戏服务器编程
c++运行效率非常高
2.
TCP传输控制协议
IP网际协议
Socket
3.
Linux 乌班图
开源第三方库
BOOST
4.
80%游戏服务器端用C++
工作量最大的地方是具体的游戏逻辑
常见的游戏服务器框架和重点部分的实现
5.
IP网际协议详解
OSI模型 开放系统的通信交互模型 学术性产物的
应用层、表示层、会话层、传输层、网络层、链路层、物理层
6.
IP模型
产生于实践用于实践 成为标准
7.
数据进入协议栈的封装
以太网封装最小46字节,不足的用0
最大1500个字节
8.
IP协议特点:不可靠、无连接
不能保证IP的数据报成功的到达目的地
提供最好的传输服务
9.
网络数据都是按照Big Endian来传送的
IP数据报格式首部字段
家用操作系统little endian
10.
游戏服务器端绝大部分用TCP协议
TCP详解
TCP是如何利用IP的
TCP将应用程序的传输数据分割成合适的数据块
定时器
延迟确认
检验和
流量控制
TCP把应用程序要发送的数据进行封装
TCP,IP没有选项的话首部是20个字节。
11.
TCP首部
12.
TCP的状态变迁
TCP连接确认(三次握手)
13.
TCP断开以及传送数据详解
TCP连接的断开(四次握手)
14.
TCP数据相互传送
交互式与成块的数据两种
时间延迟确认
Nagle算法(游戏开发一般关闭这个算法)
接收窗口大小
15.
用wireshark工具查看TCP连接和断开和TCP杂项
TCP内部使用的定时器:
重传定时器
坚持定时器
保活定时器
2MSL定时器
16.
单向链表反转(考察指针)
struct Node
{
Node* next;
int value; } static Node* reverseList(Node* n){
Node* prev= nullptr;
while(n){
Node* next=n->next;
n->next=prev;
prev=n;
n=next;
}
n=prev;
return n;
}
c++游戏服务器编程学习笔记(一)TCP/IP的更多相关文章
- Python Web学习笔记之TCP/IP、Http、Socket的区别
经常在笔试.面试或者工作的时候听到这些协议,虽然以前没怎么涉及过,但至少知道这些是和网络编程密不可分的知识,作为一个客户端开发程序员,如果可以懂得网络编程的话,他的作用和能力肯定会提升一个档次.原因很 ...
- Python Web学习笔记之TCP/IP协议原理与介绍
HTTP.FTP.SMTP.Telnet等等协议,哦!那个HTTP协议啊就是访问网页用的那个协议啊然后那个······其实······你懂得,我们应该从实际来了解他,理解网络协议的作用与功能,然后再从 ...
- 网络学习笔记:TCP/IP连网和Internet
1.网关 由硬件和软件组成,实现不同网段间的数据传送. 常用路由器充当网关. 网关通常维护一份路由表,但只有少量的编址信息.它用这些信息把数据转发到知道更多信息的网关. 组成互联网骨干的网关称为核心网 ...
- 学习笔记之TCP/IP协议的重要性
1. 随处可见的协议 在计算机网络与信息通信领域里,人们常常提及"协议"一词.互联网中常 用的具有代表性的协议有IP.TCP.HITP等. 而LAN(局域网)中经常使用的协 ...
- 学习笔记之TCP/IP协议分层与OSI參考模型
1.协议的分层 ISO在制定标准化OSI之前,对网络体系结构相关的问题进行了充分的讨论, 终于提出了作为通信协议设计指标的OSI參考模型.这一模型将通信协议中必要 的功能分成了7层.通过这些 ...
- 多线程编程学习笔记——编写一个异步的HTTP服务器和客户端
接上文 多线程编程学习笔记——使用异步IO 二. 编写一个异步的HTTP服务器和客户端 本节展示了如何编写一个简单的异步HTTP服务器. 1.程序代码如下. using System; using ...
- C++游戏服务器编程笔记 IP详解
C++游戏服务器编程笔记 IP详解 IP详解 INTERNET的历史 上世纪60年底起源于美国 1992年,Internet上的主机超过了100万台 现在已经是现代文明人的必需品 TCP/IP的 ...
- Python--网络编程学习笔记系列02 附:tcp服务端,tcp客户端
Python--网络编程学习笔记系列02 TCP和UDP的概述: udp通信模型类似于写信,不需要建立相关链接,只需要发送数据即可(现在几乎不用:不稳定,不安全) tcp通信模型类似于打电话,一定要建 ...
- DirectX 11游戏编程学习笔记之8: 第6章Drawing in Direct3D(在Direct3D中绘制)(习题解答)
本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com 注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...
随机推荐
- 导入导出oracle数据库表的dmp文件
1.先进入命令行,点击开始,输入cmd 2.导入的命令是:imp 用户名/密码@网络服务名 file=xxx.dmp full=y; 3.导出的命令是:exp 用户名/密码@网络服务名 file=xx ...
- go sync.Mutex 设计思想与演化过程 (一)
go语言在云计算时代将会如日中天,还抱着.NET不放的人将会被淘汰.学习go语言和.NET完全不一样,它有非常简单的runtime 和 类库.最好的办法就是将整个源代码读一遍,这是我见过最简洁的系统类 ...
- JSON格式互转集合
在工作中我们经常会遇到格式转换的问题,有的时候是将JSON转换成DataTable.DataSet或是List等,也有可能将DataTable.DataSet或是List转换成JSON的,抽了点时间把 ...
- HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较
摘要: 在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...
- keil 怎样新建工程,编写代码?
打开keil uversion 4 新建工程 新建的工程名字,点击保存. 选择 cpu 单片机芯片 Atmel ----> AT89C51 不用将汇编代码加入工程,选择 “否” 新建文件,注意这 ...
- 禁用站点asp运行
禁用站点asp运行 进入 Mcafee 的 VirusScan 控制台,双击访问保护->进文件, 共享资源和文件夹保护,在要阻挡的文件和文件夹那点添加 规则名: 禁止网站进程在任何地方修建和修改 ...
- 初探linux内核编程,参数传递以及模块间函数调用
一.前言 我们一起从3个小例子来体验一下linux内核编程.如下: 1.内核编程之hello world 2.模块参数传递 3.模块间 ...
- HTML 头部标记
HTML头部标记放在<head></head>中,一般包括标题.基底信息.元信息等. <base> 当前文档的URL全称(基底网址) <base ...
- 原来今天是感恩节-Linux基础继续&MySQL和PHP
hi 原来今天是感恩节.虽然一直没有过这个节日的习惯,但仅仅是听到感恩的消息,都能想到一幅幅画面.愿大家安好! 下午开题会议还是有所收获,悄悄的,就变向那个不喜欢自己的人了. 一.Linux基础(二) ...
- WEB安全--逻辑漏洞
业务逻辑问题是一种设计缺陷.逻辑缺陷表现为设计者或开发者在思考过程中做出的特殊假设存在明显或隐含的错误.精明的攻击者会特别注意目标应用程序采用的逻辑方式,设法了解设计者与开发者做出的可能假设,然后考虑 ...