linux - 默认端口号始终为 4 位数字

标签 linux windows macos port

<分区>

在 Windows/Linux/Mac 中,默认端口号是否始终为四位数字?

我们可以在定制的时候给自己的号码,那为什么所有的应用程序都提供4位默认端口号呢?

最佳答案

Network port numbers是 2 字节无符号整数,因此可以是 0 到 65535 范围内的任何数字。保留零但除此之外,理论上您可以使用任何数字,除了某些端口具有非常特定的含义。您可以看到这些常用端口的列表 on Wikipedia .虽然您绝对可以将它们用于您的应用程序,但很可能它们已经在使用中。

对于自定义应用程序,您通常使用“众所周知”范围之外的数字,即四位或五位数字。通常,您甚至应该超过 49152 进入“短暂”空间。这样,冲突的可能性就会降低,并且您不会尝试使用通常用于特定类型应用程序的端口。随机化端口(如果您的应用程序允许的话)也很常见,以减少发生冲突的可能性。

使用大端口号的另一个原因是操作系统可能会限制打开较小的端口号。例如,在 Linux 上,您需要 root 权限才能打开低于 1024 的端口。打开高于 1024 的端口号则不需要 root 权限。这就是为什么许多开发 Web 服务器使用 8080、8000 或 3000 之类的名称的原因。

关于linux - 默认端口号始终为 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38091498/

相关文章:

python - 使用 pyinstaller 打包后 Kivy 应用程序崩溃

linux - Linux/Qt/C++下如何检测USB设备断开连接

c++ - 错误 : Invalid options syntax: -//tensorflow:libtensorflow_cc. 所以

c - Windows编程中的Console是什么意思?

c++ - 为什么我的 Windows 桌面进程似乎立即退出而没有标准输出?

macos - 更新到 OSX High Sierra 后出现 curl "no start line"LibreSSL 错误

objective-c - 在 Cocoa 中激活字体时从 NSFontManager 获取更新的 availableFonts

linux - 在 perl 套接字编程中如何从客户端发送数据并从服务器接收数据以及如何获取客户端进程数和客户端 ID?

phpmyadmin登录页面问题

c - 无法避免子进程继承父进程的 cpu 亲和性