c++基础
学习链接:w3cschool,博客中只记录了博主感到疑问和重要的内容。
问题
-
byte类型?答:好像没有byte变量类型
-
带有静态存储持续时间的变量?
-
“210f”?答:210.0f是合法的
-
这个对应关系?50000对应-15536?答:二进制对应
-
对变量的类型限定符?
-
register存储类?具体怎么用?
-
这3个?
-
没有名字,那函数主体里怎么用参数呢?答:函数声明里可以,但是定义里要写参数名称。
-
double d,只能一位小数吗?答:只针对这一个数,十进制转二进制可能会产生无限循环小数,从二进制转回十进制的时候就只剩一位小数了。
-
两个随机函数?srand()设置种子?
答:srand()是设置某种排序,然后rand()按照这种排序,从第一位开始取,取10次;所以如果先srand(),再for循环,就相当于每次设置一种顺序,再取数字,每次的答案都不一样;但是如果是不设置srand(),或者把srand()设置在for循环里,那么两次for循环的答案是一样的 -
输出值改变?
-
这里为什么要用指针?答:也可以用字符数组,一样的
记录内容
- 系统不会初始化局部变量;会自动初始化全局变量;
- 运算优先级…从上到下,从高到低
- 指针和引用,都修改了实际参数,格式不太一样
- 引用是某个已存在变量的名字,必须初始化。
- 虚函数:动态绑定,多态用
- 文件和流
头文件: < i o s t r e a m > <iostream> <iostream>和 < f s t r e a m > <fstream> <fstream>
-
打开文件
-
读取数据
-
写入数据
- 模板
-
函数模板:
用函数模板:
-
类模板:
用类模板:
socket
学习链接:socket编程入门
- Windows与linux对于socket的不同:与 UNIX/Linux 不同的是,Windows 会区分 socket 和文件,Windows 就把 socket 当做一个网络连接来对待。
- 面向连接与无连接:Internet socket主要有2种:stream是面向连接的,使用tcp/ip协议,按顺序到达、不会丢失;datagram是无连接的,使用udp协议,传输效率高,发送接收同步,限制每次传输数据大小。
- OSI-TCP/IP:OSI:7层,TCP/IP对OSI简化:4层,链路层-网络层-传输层-应用层。
- IP地址-MAC地址-端口号:IP地址:Internet Protocol Address,现通常指IPv4,目前一般是一个局域网拥有一个独立的IP地址;MAC地址:Media Access Control Address,以太网地址,唯一标识一台计算机;端口号:port,为每个网络程序分配唯一端口号;
- tcp建立连接:三次握手
- tcp断开连接:四次握手
- tcp连接:
- socket() 函数用来创建套接字,确定套接字的各种属性,然后服务器端要用 bind() 函数将套接字与特定的 IP 地址和端口绑定起来,只有这样,流经该 IP 地址和端口的数据才能交给套接字处理。类似地,客户端也要用 connect() 函数建立连接。
- 对于服务器端程序,使用 bind() 绑定套接字后,还需要使用 listen() 函数让套接字进入被动监听状态,再调用 accept() 函数,就可以随时响应客户端的请求了。
- Windows下使用send(),recv()来发送接收数据,linux下使用write(),read()。
(1)server端:socket(),bind(),listen(),accept(),send()
(2)client端:socket(),connect(),recv()