我正在编写一个多线程服务器应用程序,使用 C 语言(Linux),必须监听两个不同的端口号,比如监听端口号为 3000 和 4000,为连接到它的不同客户端提供不同的功能服务(实际功能由工作线程执行,主线程无限运行并在新连接时产生新的工作线程)。我不确定 select 是否适用于此情况,因为我们可以有多个套接字连接,但所有连接都与同一端口号相关联。我尝试依次绑定 sock_1 和 sock_2。当我运行 client_1 时,一切正常。但是,当我运行 client_2 时,在客户端出现 connect() 错误。如果可以在这里使用 select(),请让我知道如何使用。非常感谢任何帮助!谢谢!(P.S sock_1 指的是端口号 3000,sock_2 指的是端口号 4000,client_1 指的是从端口 3000 寻求服务的客户端,client_2 指的是从同一服务器的端口号 4000 寻求服务的客户端。)
select
的设计目的。(以及poll
、epoll
、kqueue
等)。你尝试过阅读select
手册页吗? - Dietrich Epp