我是C的新手。现在我让我的服务器创建两个线程来监听两个不同的端口,它们都会调用bind a port->listen()->accept()
。然后有两个客户端分别连接到这两个端口。然后这两个线程将accept()
并生成两个文件描述符。我很好奇的是,生成的文件描述符可能是相同的整数吗?
答案 0 :(得分:2)
文件描述符是你不应该解释的东西 - 所以知道这个实际上“不是你的事”;)
在进程中,系统调用返回的文件描述符保证为唯一。因此,两个线程将接收两个不同的整数(实际上,多线程根本不会影响这个问题。结果就像在主线程中打开两个套接字一样)。
答案 1 :(得分:1)
它们可能是相同的整数,如果第一个线程将在第二个套接字上的accept创建新套接字之前关闭新套接字 - 文件描述符将被回收。