1.认识端口号
2.初始TCP和UDP协议
3.socket编程接口
-----------------------------------------------------------------------------------------------------------------------------
1.认识端口号
两台机器通信,本质是两台机器上,不同的应用在通信
但是软件是程序员写的代码。编译形成的二进制程序,那么说客户端和服务器这种说法并不准确
你在玩抖音,你得把抖音打开了,才能给你推视频,客户端软件必须运行的状态,才能给你推视频
软件客户端 ----》 客户端进程
服务器软件 ----》 服务器进程
最终我们可以得出一个结论 ---》 把数据发送到对方主机不是最终目的,真正的网络通信过程本质是进程间通信!!!将数据在主机间转发仅仅是手段,机器收到之后,需要将数据交付给指定的进程
那么现在问题来了,我们有了IP地址,能够通过IP地址将数据交付到对方主机上,交给了对应的主机之后,怎么保证对方主机可以把数据交付给特定的进程呢??
端口号
端口号是标识特定主机上的网络进程的唯一性!!!
初始TCP和UDP协议
TCP:
1.传输层协议
2.有连接
3.可靠传输
4.面向字节流
UDP:
1.传输层协议
2.无连接
3.不可靠传输(有可能会出现网络丢包的问题 、 或者数据报乱序、重复问题)
4.面向数据报
网络字节序列
socket编程接口
常见的套接字:
1.域间socket(本主机间的通信)
2.原始socket(跳过传输层的接口,可以直接调用网络层接口甚至是数据链路层的接口)
3.网络socket(重点学习)
套接字种类的不同,理论上是三种应用场景,对应的应该是三套接口!!---》但是不想设计过多的接口!!---》将所有的接口统一,用的都是同一套函数
sockaddr结构
socket API是一层抽象的网络编程接口,适用于各种底层网络协议