<网络编程>网络套接字

目录

理解源IP地址和目的IP地址

认识端口号

端口号和进程ID的关系

理解源端口号和目的端口号

初步认识TCP、UDP协议

TCP协议

UDP协议

网络字节序列

socket网络接口

socket常见API

sockaddr结构

UDPsocket

编码:


理解源IP地址和目的IP地址

源IP:发出消息的主机

目的IP:源主机指定的接收消息的主机

认识端口号

端口号:传输层协议的一个内容,用来标识一个进程(唯一性),用端口号来交付数据。

IP地址(公网IP, IPV4 32位),IP地址早已经不够了,采用将网络划分为局域网IP和公网IP,IP在特定的网络中保证主机唯一性。

我们通信的目的是将数据传输到对方机器上面的软件客户端 -> 客户端进程, 服务器软件 -> 服务器进程。真正的网络通信过程,本质其实是进程间通信!,将数据在主机间转发仅仅是手段,机器收到之后,需要将数据交付给指定的进程!!

端口号和进程ID的关系

一个进程可以绑定多个端口号,但是一个端口号不能被多个进程绑定。

理解源端口号和目的端口号

发数据的事源端口,收到数据的是目的端口。

网络中:IP地址+端口号 = 套接字,所有我们一般在网络编程称之为套接字编程。

初步认识TCP、UDP协议

TCP协议

传输层协议、有连接、可靠传输、面向字节流

有连接:事先告知

可靠传输:为了保证可靠,就会设计更多的策略,保证不丢包

UDP协议

传输层协议、无连接、不可靠传输、面向数据报

无连接:随时可能发数据,没有事先告知

不可靠传输:只负责把数据给下层,其他的不管,丢包就丢包咯

网络字节序列

不同的机器数据存放可能有大小端之分,为了避免这些差异,网络有了如下规定:

网络规定,所有的数据,都必须是大端!

socket网络接口

socket常见API

 常见的套接字:

1.域间soket :本地通信方案,类似管道,会了网络socket就会了

2.原始socket : 通常编写工具,可以绕过其他层编写

3.网络socket :

理论上是三种应用场景,对应的应该是三套接口!,但是Linux中,不想设计过多的接口!所以就将所有的接口进行统一了!

sockaddr结构

sockaddr_in :网络通信

sockaddr_un:  本地通信

sockaddr: 前16位地址,判断是网络/本地通信。

UDPsocket

  

云服务器无法绑定公网IP,也不建议;

对于服务器来说,也不推荐绑定一个确定的的IP,推荐绑定任意IP的方案;

编码:

udp · d29c7f7 · 绅士.永/Linux_learn_1 - Gitee.com

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

绅士·永

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

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

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

打赏作者

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

抵扣说明:

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

余额充值