Python网络编程之端口和端口号

时间:2023-01-03 07:13:33

一、问题思考

不同电脑上的飞秋之间进行数据通信,它是如何保证把数据给飞秋而不是给其它软件呢?

其实,每运行一个网络程序都会有一个端口,想要给对应的程序发送数据,找到对应的端口即可。

端口效果图:

Python网络编程之端口和端口号

二、什么是端口

端口是传输数据的通道,好比教室的门,是数据传输必经之路

那么如何准确的找到对应的端口呢?

其实,每一个端口都会有一个对应的端口号,好比每个教室的门都有一个门牌号,想要找到端口通过端口号即可。

端口号效果图:

Python网络编程之端口和端口号

三、什么端口号

操作系统为了统一管理这么多端口,就对端口进行了编号,这就是端口号,端口号其实就是一个数字,好比我们现实生活中的门牌号,

端口号有65536个。

那么最终飞秋之间进行数据通信的流程是这样的,通过ip地址找到对应的设备,通过端口号找到对应的端口,然后通过端口把数据传输给应用程序

最终通信流程效果图:

Python网络编程之端口和端口号

四、端口和端口号的关系

端口号可以标识唯一的一个端口

五、端口号的分类

  • 知名端口号
  • 动态端口号

知名端口号:

知名端口号是指众所周知的端口号,范围从0到1023。

  • 这些端口号一般固定分配给一些服务,比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务。

动态端口号:

一般程序员开发应用程序使用端口号称为动态端口号, 范围是从1024到65535。

  • 如果程序员开发的程序没有设置端口号,操作系统会在动态端口号这个范围内随机生成一个给开发的应用程序使用。
  • 当运行一个程序默认会有一个端口号,当这个程序退出时,所占用的这个端口号就会被释放。