
编程
编程
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
东方猫
代码崇拜
展开
-
韩版传奇 2 源码分析与 Unity 重制(一)服务端 TCP 状态管理
该专题将会分析 LOMCN 基于韩版传奇 2,使用 .NET 重写的传奇源码(服务端 + 客户端),分析数据交互、状态管理和客户端渲染等技术,此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过程。本文重点介绍了服务端的启动链路、网络初始化和连接处理这三个过程,并简要分析的游戏循环的实现与数据包处理,在下一篇文章中,我们会从客户端角度分析从游戏启动、登录、游戏开始和基础游戏交互的全流程。原创 2023-12-25 09:47:26 · 1942 阅读 · 0 评论 -
mysql中的Varchar(255)可以放多少个汉字
MySQL | ver < 4.1: VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-8。VARCHAR以字符为单位存储,假设输入仍然为常用汉字,则VARCHAR(255)可以存放255个汉字。3字节编码长度),则VARCHAR(255)共可存放约85个汉字;原创 2023-02-26 17:47:13 · 6099 阅读 · 0 评论 -
VS2019 安装成功:安装程序要求重新启动计算机,然后才能运行visual studio
安装完成 VS2019 后需要重新启动计算机,然后才能运行visual studio,这安装在我们自己电脑上就可以通过重启计算机来正常使用。但在学校电脑带有还原卡的情况下重启数据就没了,可以通过修改注册表的方法避免需要重启才可以运行VS。修改注册表里的数据值为 0 即可: \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\Setup\Reboot...原创 2021-04-01 17:12:04 · 3386 阅读 · 0 评论 -
C++中 DWORD和int的区别
INT 代表int,DWORD 代表 unsigned longint会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位。看看最原始的定义就知道了。DWORD是无符号的,相当于unsigned long ,它是MFC的数据类型。而int是有符号性的,而且他所占的字节数不一定是4个,主要和你的IDE有关,像在Turbo C中就是2个字节,VC6.0中就是4个字节切忌把 int 看成 32 位书中早就说了long 32位有符号整数int原创 2020-12-10 19:15:37 · 974 阅读 · 1 评论 -
C/C++预处理指令#ifdef,#ifndef
#ifdef如果宏已经定义,则编译下面代码#ifndef如果宏没有定义,则编译下面代码#ifdef _SOCKET_ASYNC_IO if ((WSAAsyncSelect(s, g_hMainWnd, nMsgID, lEvent)) == SOCKET_ERROR) return FALSE;#else#ifdef _SOCKET_OVERLAPPED_IO if ((WSAAsyncSelect(s, g_hMainWnd, nMsgID, lEvent)) == SOCKET_原创 2020-12-06 10:56:41 · 326 阅读 · 0 评论 -
如何优雅的统计c++代码行数
b*[:b#/]+.*$原创 2020-12-05 09:01:46 · 600 阅读 · 0 评论 -
新版mysql CMD登录 之 巨坑
从MySQL 8.0.4开始,他们将MySQL服务器的默认身份验证插件从mysql_native_password更改为 caching_sha2_password。你可以运行以下命令来解决此问题。sample username / password => student / pass123ALTER USER ‘student’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘pass123’;有关详细信息,请参见官方页面:MySQ原创 2020-12-04 10:26:28 · 471 阅读 · 0 评论 -
sz前缀表示的意思
Windows 程序变量前的sz表示“以零结尾的字符串”(String Terminated with a Zero)原创 2020-12-02 15:39:32 · 2308 阅读 · 0 评论 -
VOID和void的区别
在Visual Studio开发环境下若包含了WinNT.h,则两者是相同的。头文件WinNT.h中有一句:#ifndef VOID#define VOID voidvoid是标准的,你看到VOID可能是windows下开发可能是一个宏定义,每个公司会将C的标准类型封装起来我们公司原来还有VOS_VOID...原创 2020-11-28 11:33:34 · 674 阅读 · 0 评论 -
静态(s_)、成员(m_)、全局(g_)变量在c++中有什么含义、作用?
s_ m_ g_ 等前缀仅仅是我们的习bai惯的命名规则,与语法无关du.是为了方便我们在定义了变量zhi以后使用的时候dao直观的区分这些变量.C++不是完全面向对象的开发语言,同C语言一样,它有全局变量,这个变量不属于任何一个类.这些全局变量,在你的程序任何地方都可以访问到这个变量静态变量:声明变量的时候加static关键字,其意义是指定在其中声明一个或多个局部变量的过程终止后,这些已声明的局部变量继续存在并保留其最新值。void fun(){ static int i = 0;i++;原创 2020-11-27 15:47:52 · 1914 阅读 · 0 评论 -
WSASocket()函数 和 Socket()函数
创建一个与指定传送服务提供者捆绑的套接口,可选地创建和/或加入一个套接口组。此函数为socket()的扩展版本,其功能都是创建一个原始套接字。使用时需要包含winsock2.h 头文件和链接ws2_32.lib库。定义SOCKET WSASocket ( int af, int type, int protocol, LPWSAPROTOCOL_INFO lpProtocolInfo, GROUP g, DWORD dwFlags );参数说明:af:[in]一个地原创 2020-11-26 15:05:53 · 1734 阅读 · 0 评论 -
CreateIoCompletionPort()函数
创建输入/输出(I / O)完成端口并将其与指定的文件句柄相关联,或创建尚未与文件句柄相关联的I / O完成端口,从而允许以后进行关联。将打开的文件句柄的实例与I / O完成端口相关联,可使进程接收有关该文件句柄的异步I / O操作完成的通知。注意此处使用的术语文件句柄是指表示重叠的I / O端点的系统抽象,而不仅仅是磁盘上的文件。任何支持重叠I / O的系统对象(例如网络端点,TCP套接字,命名管道和邮件插槽)都可以用作文件句柄。有关更多信息,请参见“备注”部分。句法HANDLE CreateI原创 2020-11-26 14:45:31 · 467 阅读 · 0 评论 -
C++中 DWORD和int的区别
INT 代表int,DWORD 代表 unsigned longint会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位。看看最原始的定义就知道了。DWORD是无符号的,相当于unsigned long ,它是MFC的数据类型。而int是有符号性的,而且他所占的字节数不一定是4个,主要和你的IDE有关,像在Turbo C中就是2个字节,VC6.0中就是4个字节切忌把 int 看成 32 位书中早就说了long 32位有符号整数int原创 2020-11-26 11:30:49 · 2027 阅读 · 0 评论 -
WSARecv()函数
WSARecv()是从一个套接口接收数据的程序。主要用于在重叠模型中接收数据。#include <winsock2.h>int WSAAPI WSARecv ( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesRecvd, LPINT lpFlags, LPWSAOVERLAPPED l原创 2020-11-26 11:27:38 · 4401 阅读 · 0 评论 -
c++类成员函数中调用多线程函数_beginthreadex()
#include "stdafx.h"#include#include#includeusing namespace std;class A { public: int n; A(int n) { this->n = n; } void static run1(A &a); void static run2(A &a); void static run(A &a);};void A::run1(A &a) { for (in原创 2020-11-26 11:17:15 · 1428 阅读 · 0 评论 -
D3DCAPS9结构
typedef struct D3DCAPS9 { D3DDEVTYPE DeviceType; UINT AdapterOrdinal; DWORD Caps; DWORD Caps2; DWORD Caps3; DWORD PresentationIntervals; DWORD CursorCaps; DWORD原创 2020-11-25 11:54:34 · 349 阅读 · 0 评论 -
typedef 关键字
typedef是在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。用法总结如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法:使用typedef为现有类型创建别名,定义易于记忆的类型名typedef int size;void measure(size*psz);size array[4];size len=file.getlength(原创 2020-11-24 20:50:56 · 556 阅读 · 0 评论 -
stdlib.h头文件
stdlib 头文件即standard library标准库头文件。stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 具体的内容可以打开编原创 2020-11-24 16:26:50 · 2143 阅读 · 1 评论 -
WSADATA
WSADATA,一种数据结构。这个结构被用来存储被WSAStartup函数调用后返回的Windows Sockets数据。它包含Winsock.dll执行的数据。这个结构被用来存储被WSAStartup函数调用后返回的Windows Sockets数据。它包含Winsock.dll执行的数据。结构原型摘自<winsock.h>typedef struct WSAData { WORD wVersion; WORD原创 2020-11-24 15:13:04 · 3187 阅读 · 0 评论 -
linux 如何让程序后台执行
$ (./test.sh &)$ setsid ./test.sh &$nohup./test.sh &具体的转自:http://digdeeply.org/archives/06281192.html在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:Example 1 2 3 4 5 $ ./tes...原创 2020-11-23 11:18:55 · 1286 阅读 · 0 评论 -
fgets,fputs,fputc,fgetc总结
总结如下:fgets:从文件中每次读入一行。函数原型char *fgets(char *str,int n,FILE *fp),str是存放将要读入字符型数据的存放地址,n是数目变量,fp是文件指针。该函数表明从文件fp中读入n-1个字符放在以str为起始地址的空间,因为系统会在最后加上一个‘\0’。读入过程中:若该行字符数不超过n-2个(2代表该行本身的换行符‘\n’和系统自动加上的'\0'), 则函数读完该行就结束,文件指针移动到下一行,再进行文件读入操作时,从下一行开始读入。...原创 2020-11-23 10:56:16 · 664 阅读 · 0 评论 -
connect()函数
connect()用于建立与指定socket的连接。头文件: #include <sys/socket.h>函数原型: int connect(SOCKET s, const struct sockaddr * name, int namelen);参数:s:标识一个未连接socketname:指向要连接套接字的sockaddr结构体的指针namelen:sockaddr结构体的字节长度connect() 函数用来建立连接,它的原型为[1]: 1...原创 2020-11-23 10:54:28 · 10800 阅读 · 0 评论 -
C语言中exit(0)与exit(1)有什么区别
今天天气有点冷,当我在写消息队列的程序的时候,遇到了结束进程的这个问题,突然脑海里有点混乱,我是用_exit(),还是用exit(1),还是用exit(0)呢,然后自己度娘了一下,整理了一下稍微做了一个总结吧。_exit();和exit()主要区别是一个退出进程会清理I/O缓冲区,一个直接结束进程进入到内核中。下面我就举个例子说明下吧,int main(){printf("is ok\n");printf("I am a chinese people");_exit(0);}原创 2020-11-23 10:42:14 · 638 阅读 · 0 评论 -
WSADATA 数据结构
WSADATA,一种数据结构。这个结构被用来存储被WSAStartup函数调用后返回的Windows Sockets数据。它包含Winsock.dll执行的数据。摘自<winsock.h>typedef struct WSAData { WORD wVersion; WORD wHighVersion;#ifdef _WIN64 unsigned short原创 2020-11-23 10:25:03 · 2405 阅读 · 0 评论 -
strcmp函数
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。externintstrcmp(constchar*s1,constchar*s2);规则当s1<s2时,返回为负数;当s1=s2时,返回值= 0;当s1>s2时,返回正数。[2]...原创 2020-11-23 10:13:02 · 6941 阅读 · 0 评论 -
vs中能编译通过,但是会有红色下划线提示未定义标示符问题
项目能编译通过,但是代码中会有红色下划线提示未定义标示符。就连BOOL TRUE FALSE等都会有下划线。这通常是该代码文件包含在项目文件夹的子文件夹中。解决办法是配置包含项目目录即可:打开项目属性-》配置属性-》C/C++常规-》附加包含目录-》填入:$(ProjectDir)...原创 2020-11-22 15:44:12 · 617 阅读 · 0 评论