网络套接字(UDP和TCP编程)

一:port

本质:端口号是一改字节16位的整数【0,65535】【0,2^16-1】
作用:端口号用来标识一个进程,告诉操作系统,当前这个数据要交给哪一个进程来处理
一个端口号只能被一个进程所占用,一个进程可以占用多个端口号
知名端口号【0,1023】:已经被一些知名的协议所使用
mysql:3306
oracle:1521

二:网络数据的五元组信息

源IP,源端口,目的IP,目的端口,协议

源IP地址:标识网络数据从哪台主机出发
源端口:标识网络数据从“源IP”对应的这台主机的哪个进程产生
目的IP:标书网络数据要去往哪一台主机
目的端口:当通过目的IP,找到目的主机之后,通过目的端口找到对应进程
协议:双方传输数据的时候,使用什么协议(一般指UDP/TCP)

三:网络字节序

小端字节序:低位放在低地址
大端字节序:低位放在高地址
主机字节序:主机本身的字节序,如果是大端,则主机字节序为大端,如果是小端,则主机字节序为小端
网络字节序:规定网络传输数据的时候采用大端字节序进行传输

四:主机字节序和网络字节序相互转换

主机字节序转换为网络字节序

ip:uint32_t
   uint322_t htonl(uint32_t hostlong);
port:unit16_t
   uint16_t htons(uint16_t hostshort);

网络字节序转换为主机字节序

ip:unit32_t
   uint32_t ntohl(unit32_t netlong);
port:uint16_t
   uint16_t ntohs(uint16_t netshort);

五:TCP和UDP协议特性和区别

UDP

无连接:UDP双方在发送数据之前,是不需要进行沟通的,只需要知道对方的ip和端口就好i(对方进程可能没有准备好)就可以发送
不可靠:不保证UDP数据是可靠的,有序的到达对方
面向数据报:UDP和应用层/网络层递交数据的时候,都是整条数据进行交付的

TCP

面向连接:TCP双方在发送数据之前会先建立连接(1.确保对方正常通信 2.沟通双方发送后续数据的细节(例如序号))
可靠传输:TCP保障传输的数据是可靠的有序的到达对端的
面向字节流:1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星星21211

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值