我在linux中编写了一个简单的程序,它创建了套接字ID(将套接字FD作为3),打印并关闭它。在关闭之前,它将等待用户输入。我在不同的shell中启动了另一个程序实例。第二个程序也创建了套接字,但得到了相同的套接字FD,即3。 然后我扩展程序在同一程序中创建两个套接字。现在我得到插槽FD为3和4。
现在我怀疑Socket FD值是否特定于进程?如果是这样,select call将如何正确识别哪个套接字获取数据?
答案 0 :(得分:1)
文件描述符对于正在运行的程序实例是唯一的 - 因此您的结果是正确的。由于它们是唯一的,因此select()也会没问题。