0

C++-网络编程-5.socket阻塞与非阻塞

**阻塞(blocking) 、非阻塞 (non-blocking):**Windows套接字在阻塞和非阻塞两种模式下执行I/O操作。在阻塞模式下,在I/O操作完成前,执行的操作函数一直等候而不会立即返回,该函数所在的线程会阻塞在这里。相反,在非阻塞模式下,套接字函数会立即返回,而不管I/O是否完成,该函数所在的线程会继续运行。 ##阻塞模式: **阻塞模式的套接字上,调用任何一个Windows Socket API 都会耗费等待时间:** 当调用recv()函数时,- 阅读剩余部分 -
0

C++-网络编程-4.socket编程之TCP通讯

![](http://www.flayerveo.com/usr/uploads/2020/02/1540225395.png) ##服务端 Server: ```cpp 初始化winsock 1.创建TCP套接字 2.绑定socket到一个IP和端口上 3.监听套接字 4.接受客户端请求 5.发送、接收消息 6.关闭套接字 销毁winsock ``` ##客户端 Client: ```cpp 初始化winsock 1.创建TCP套接字 - 阅读剩余部分 -
0

C++网络编程-3.WSA系列API函数

**什么是WSA (Windows Sockets Asynchronous)? ** 不带WSA前缀标准的socket函数,如何socket(), send(), recv()这些不带WSA前缀的函数,这些函数是全平台通用的;而加上了WSA前缀的是微软的扩展函数,一般是Winsock2定义的2.0版的函数,只能在Windows平台用。 ##WSAStartup() 函数: 用于初始化进程调用的Winsock相关的dll。 格式: ```cpp int WS- 阅读剩余部分 -
0

C++-网络编程-2.socket常用API函数

##socket() 函数: 创建一个套接字 格式: ```cpp SOCKET 套接字描述字 = socket(int af, int type, int protocol) ``` 参数一 (af): 指定应用程序使用的协议族,对于TCP/IP协议族,该参数设置为AF_INET; 参数二 (type):指定要创建的套接字类型,流套接字类型为SOCK_STREAM、数据报套 接字类型为SOCK_STREAM;原始套接字SOCK_RAW; 参数三 (p- 阅读剩余部分 -
0

C++网络编程-1.socket简介与初始化

**Socket:**将TCP/IP集成到Unix中,出现了许多TCP/IP应用程序接口, 这些接口称为Socket接口。如今Socket接口已成为TCP/IP网络最通用、成熟的API,被称为"套接字"。 **WinSock:**微软制定的一套Windows下的网络编程接口,即WinSock规范。在实际应用中Windows Sockets规范主要有1.1和2.2版。两者的最重要区别是1.1版只支持TCP/IP协议,而2.2版可以支持多协议并且有良好的向后兼容性。 **- 阅读剩余部分 -
0

C++-网络编程-域名和网络结构体hostent

#域名和网络地址结构体---struct hostent **该结构体定义如下:** ```cpp struct hostent { char *h_name; //主机名,即官方域名 char **h_aliases; //主机所有别名构成的字符串数组,同一IP可绑定多个域名 int h_addrtype; //主机IP地址的类型,例如IPV4(AF_INET)还是IPV6 int h_length; //主机IP地- 阅读剩余部分 -
0

C++-算法库 algorithm

##导入库: ```cpp #include ``` ##非修改性序列操作 循环 对序列中的每个元素执行某操作 for_each() 查找 在序列中找出某个值的第一次出现的位置 find() 计数 在序列中统计某个值出现的次数 count() 两个序列中的对应元素都相同时为真 equal() 搜索 在序列中找出一子序列的第一次出现的位置 search() ##修改性序列操作 复制 从序列的第一个元素起进行复制 copy() 从序列的最- 阅读剩余部分 -
0

C++-数学库 math

##导入方式: ```cpp #include ``` ##功能: ```cpp double sqrt(double x); //开平方sqrt是square root缩写 double pow(double x,double y); //求乘方x^y,pow是power的缩写 ```
0

C++-库-动态链接库的编写

##动态链接库简介: 动态链接库(Dynamic-LinkLibrary)通常包含一堆程序员自定义的变量与函数,可以在运行时动态链接到可执行文件。 ##静态库的扩展名: .dll (Win) .so(Linux) ##静态库的优缺点: 优点: ![](http://www.flayerveo.com/usr/uploads/2020/02/1611926148.png) 缺点: ![](http://www.flayerveo.com/usr/- 阅读剩余部分 -
0

C++-库-静态链接库的编写

##静态库简介: 静态库(staic library)通常包含一堆程序员自定义的变量与函数,在编译期间由编译器与链接器将它集成到可执行文件中。 ##静态库的扩展名: .lib (Win) .a(Linux) ##静态库的优缺点: **优点:**发布时只需发布exe,因为库已被集成到可执行文件中,运行时对这个库不再依赖。 **缺点:**静态库集成到可执行文件中导致exe文件较大,后续想升级库必须重新编译 ##创建静态库的步骤: >(1) 创建- 阅读剩余部分 -
0

C++-库-windows.h库常用函数

0\. **GetModuleHandle** ( PCTSTR pszModule; //DLL名称 ) >为了知道一个可执行文件或DLL文件被加载到进程地址空间的什么位置,可以用GetModuleHandle函数来返回一个句柄/基地址。如果系统找到了指定的可执行文件或DLL文件名称,GetModuleHandle就会返回可执行文件/DLL文件映像加载到的基地址。 例: HMODULE ntdll = GetModuleHandle( "ntdll.dll" )- 阅读剩余部分 -
    页码:
ICP证: 浙ICP备2022036136号