非阻塞式connect的Windows实现

下面是connect的MSDN文档。由划线部分可知,当socket设置为非阻塞模式时,connect发起后会立即返回,然而,“三次握手”却依然进行,此时,connect返回SOCKET_ERROR,WSAGetLastError()返回WSAEWOULDBLOCK。如果需要判断connect是否成...

2016-11-22 16:07:29

阅读数 1253

评论数 0

非阻塞式connect的Linux实现

#include #include #include #include #include #include #include #include #include #include int main() { int sockfd; sockfd = socket...

2016-11-14 21:38:24

阅读数 176

评论数 0

非阻塞式connect的实现

本文以Windows为例讲解非阻塞式connect的实现,Linux下原理相同。     系统默认connect的超时时间是75s,现在我们想调整这个超时时间。send()和recv()函数可以通过setsockopt()函数设置阻塞后的超时时间, int timeout = 50...

2016-11-13 20:03:43

阅读数 486

评论数 0

struct内存对齐

struct内存对齐遵循以下两条原则:     1,  结构体中成员变量的内存地址相对于结构体首地址的偏移量,是其自身长度的整数倍。     2,  结构体变量的整体长度是其中最长成员变量长度的整数倍。     struct data{          char a;          sho...

2016-11-13 19:58:45

阅读数 112

评论数 0

8086系统中字的“对准存放”

先讲普通变量(如char short int long double)的内存对齐。     cpu根据数据总线条数分为:16位cpu(如INTEL 8086),32位cpu,64位cpu。现在Pentium以上的cpu都是64位。     cpu一次可以从内存读取的最大位数,由数据总线条数决定。...

2016-11-10 20:29:27

阅读数 1081

评论数 0

extern和头文件在多文件编译过程中的作用

多文件编译中,extern(外来的)是连接这些文件的关键。只要多个文件处于一个工程中(vs),或者使用gcc一起编译(linux,如gccfile1.c file2.c -otest),extern可以将本文件中定义的变量或者函数的作用域至其他文件,当然这些变量和函数必须是全局的。    至于头...

2016-11-07 20:44:17

阅读数 198

评论数 0

Linux下获取内存占有率和CPU占有率

#include #include #include //Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.1%id, 0.6%wa, 0.0%hi, 0.1%si, 0.0%st //Mem: 1004608k total, 414696k use...

2016-11-07 20:40:37

阅读数 377

评论数 0

C++笔记

类和结构体 不同点: 在结构体外部,结构体内部数据和函数都是公有的,而类内部成员可以规定公有、私有、保护这三种类型。   类继承来的成员的访问权限。P210 类成员的访问权限:类内部可以随便访问任何成员,因此类成员的访问权限是指定了类外部访问类成员的权限,即通过类对象访问类成员的权限。派...

2016-11-07 20:34:32

阅读数 99

评论数 0

赋值过程

此处的赋值指的是把常量赋值给变量,因此首先说明两者在内存中是如何存在的。     数据分为变量和常量。我们知道变量是有数据类型的,数据类型规定了变量所占内存大小以及数据存放形式。整型数据以补码形式存放,字符型数据以其ASCII码形式存放,浮点型数据以规范化的指数形式存放(小数点前数字为0,小...

2016-11-07 20:33:08

阅读数 160

评论数 0

linux网络编程笔记

基础知识        socket是一种IPC方法,它允许位于同一主机(计算机)或使用网络(IPV4或IPV6)连接起来的不同主机上的应用程序之间交换数据。P945        socket存在于一个通信domain中,现代操作系统至少支持下列domain:               ...

2016-11-07 20:31:57

阅读数 101

评论数 0

sscanf()中的格式说明符对数据的作用

由于sscanf与scanf的作用基本一致,后者是从控制台输入,前者是从内存中输入,此处以scanf解释格式说明符的作用。 格式说明符不对数据类型进行转换,而是向计算机说明这个数据是什么类型的数据,以便计算机存储相应的二进制。   1,scanf('%x',&data);输入12,...

2016-11-07 20:30:44

阅读数 516

评论数 0

sscanf()提取数据的方法

程序中常对文件中的数据处理,处理的前提是提取数据,而sscanf是提取数据的好方法。     空白符,包括空格、回车、制表符、新行垂直制表符、进纸符,将输入的数据分为不同的域(格式化符为%c时除外,可以将空白符读入)。控制字符串中,每个格式化说明符(以%开始)可以将对应的数据域的数据存储,也可以...

2016-11-07 20:27:56

阅读数 2361

评论数 0

win32网络编程实例——重叠IO

客户端代码: #include #include #pragma comment(lib, "Ws2_32.lib") int main() { //WSAStartup()用到 WSADATA wsaData; //WSASend()用到 WSABUF ...

2016-11-07 14:48:13

阅读数 196

评论数 0

win32网络编程实例——同步IO

服务器端代码: #include #include #pragma comment(lib, "wsock32.lib") int main() { int iResults; WSADATA wsaData; SOCKET listenSocket; SOCKE...

2016-11-07 13:18:12

阅读数 166

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭