首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我们不能使用进程id来获取我们绑定的端口呢?

为什么我们不能使用进程id来获取我们绑定的端口呢?
EN

Stack Overflow用户
提问于 2010-11-24 00:31:32
回答 3查看 3.8K关注 0票数 4

为什么我们不能在套接字编程中使用进程id实例来获取我们绑定的端口。在套接字编程中,我们创建套接字并获取套接字描述符,然后绑定到特定的端口.for多个连接,为什么我们不使用进程id,因为所有连接都是返回进程id的进程?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-11-24 00:57:19

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

  • 如何知道您想要连接到哪个进程ID?
  • 如果您想侦听同一进程中的多个“端口”,该怎么办?您只有一个进程ID。
  • IPv4和IPV6为端口ID分配了16位,但进程ID通常是32位(或更大)的值,因此它们不适合
  • 许多程序没有网络方面,也不需要网络方面。自动实例化到它们的网络通信路径会是一个潜在的安全问题吗?
  • 你可以做的一个技巧(特别是对于UDP多播或广播)是让几个程序在同一端口(通过SO_REUSEPORT)侦听,这样当任何人向该端口发送UDP包时,所有程序都会接收它。如果程序必须使用它们的(唯一)进程ID号作为端口号,那么这种技巧将是困难的,甚至是不可能的。
票数 8
EN

Stack Overflow用户

发布于 2010-11-24 00:58:05

首先,每个进程可以存在多个连接。第二,套接字API不依赖于任何操作系统进程API。

票数 5
EN

Stack Overflow用户

发布于 2010-11-26 07:02:40

因为TCP在规范中有端口号,但它没有进程it。

当您可以控制端口号时,为什么要使用您无法控制的processID呢?一个进程如何监听多个端口?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4258353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档