当前位置:  开发笔记 > 程序员 > 正文

为什么我们不能使用进程id insted采取我们绑定的端口

如何解决《为什么我们不能使用进程idinsted采取我们绑定的端口》经验,为你挑选了2个好方法。

为什么我们不能使用进程id来获取我们在套接字编程中绑定的端口.在socket编程中我们创建socket并获取套接字描述符并绑定到特定端口.对于多个连接,为什么我们不使用进程id,因为所有连接也是一个返回进程id的进程?



1> Jeremy Fries..:

这是一个有趣的想法,但我认为它会引发一些问题:

您如何知道要连接的进程ID?

如果你想在同一个进程中监听多个"端口"怎么办?您只有一个进程ID.

IPv4和IPV6为端口ID分配16位,但进程ID通常为32位(或更大)值,因此它们不适合

有许多程序没有网络方面,也不想要一个.是否会自动将网络通信路径实例化为潜在的安全问题?

您可以做的一个技巧(特别是使用UDP多播或广播)有几个程序在同一端口上侦听(通过SO_REUSEPORT),这样当任何人向该端口发送UDP数据包时,所有程序都会收到它.如果程序必须使用其(唯一的)进程ID号作为端口号,那么这个技巧将很难或不可能.



2> Nikolai Feti..:

首先,每个进程可以存在多个连接.其次,套接字API不依赖于任何OS进程API.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有