网络编程套接字

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是一层抽象的网络编程接口,适用于各种底层网络协议

相关推荐
云老大TG:@yunlaoda3605 小时前
华为云国际站代理商TaurusDB的成本优化体现在哪些方面?
大数据·网络·数据库·华为云
TG:@yunlaoda360 云老大6 小时前
华为云国际站代理商GeminiDB的企业级高可用具体是如何实现的?
服务器·网络·数据库·华为云
是娇娇公主~8 小时前
HTTPS【密钥交换+证书校验】流程讲解
网络·网络协议·面试·https·ssl
驰羽9 小时前
NAT模式下VMware的虚拟机DNS解析失败的问题解决
linux·网络·dns
誰能久伴不乏10 小时前
epoll 学习踩坑:`fcntl` 设置非阻塞到底用 `F_SETFL` 还是 `F_SETFD`?
linux·服务器·网络·c++·tcp/ip
云川之下12 小时前
【网络】华为交换机S3700与S5700详解
服务器·网络·华为
小于晏12 小时前
基于Socket实现的主流网络协议汇总
网络·网络协议
tianyuanwo12 小时前
深入理解iptables:规则管理与匹配机制深度解析
网络·安全·web安全
TG:@yunlaoda360 云老大12 小时前
如何使用华为云国际站代理商WSA配置与架构交付中的安全策略?
网络·架构·华为云
打码人的日常分享12 小时前
企业数据资产管控和数据治理解决方案
大数据·运维·网络·人工智能·云计算