自学《网络原理》,感觉还是挺有用的。再通过linux深化一下。
wireshap抓取的进取网卡的数据。在编程中其实是很有用的。
网络通信导图:
传输层TCP和UDP
TCP传输控制协议,面向连接的稳定的可靠的服务,全双工,字节流 的服务。
UDP用户数据报协议,无连接的协议。
TCP编程模型:
TCP三次握手四次挥手:
建立连接的意思:是在服务端与客户端都维护这样一个会话。
不管哪端发送数据后,对方都要进行一个确认。
四次挥手
其他网络知识:
网络字节序:由htons()函数实现。
套接字地址结构:
IP地址转换的相关函数:1、inet_addr()、inet_aton()、inet_ntoa()
2、inet_pton()、inet_ntop()
TCP编程过程:一台虚拟机做服务器,一个WINDOW做客户端。
socket函数:
connect()函数;
bind()函数:
listen()函数
accept()函数
int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen);
UDP编程模型:
多客户端访问服务器问题:
两个函数:
6-19 指视频日期
IO复用问题:
阻塞式IO
先记录个大概内容,以后,再根据思维导图,实验具体的操作吧,不操作这部分是不能掌握的。
非阻塞IO
信号驱动IO:
异步IO方式:
IO复用方式:
IO复用场合:
并发效率比较:
组播:
原始套接字:可以接收任何地方发来的数据报。可以处理从某个网卡发出去的所有数据。
发数据: