多路复用技术是一种通过共享物理信道实现多路信号传输的通信技术,其核心原理是利用复用器将多路信号合成单一信号传输,接收端通过分用器分离还原。该技术主要包括频分复用(FDM)、时分复用(TDM)、波分复用(WDM)、码分多址(CDMA)和空分多址(SDMA)等类型,其中FDM通过划分频段实现ADSL数据传输,TDM采用时分片机制支持T1载波传输,WDM通过不同波长光信号在光纤中实现双向通信。(该部分来源于百度百科)
select的概念和原理
select是一种事件通知机制,通常用于阻塞式 I/O 操作中,它允许程序在多个文件描述符上进行监视,一旦某个文件描述符变得可读、可写或出现异常,select会通知程序进行相应的处理。
select会在多个文件描述符上设置监视(例如,读、写、异常状态),然后它会阻塞程序,直到以下事件之一发生:
- 读事件:某个文件描述符准备好读取数据(如套接字接收到数据)。
- 写事件:某个文件描述符准备好写入数据(如套接字可以发送数据)。
- 异常事件:文件描述符处于异常状态(如套接字连接关闭)。
select会返回发生事件的文件描述符列表,程序可以通过这些文件描述符来进一步处理数据。
select原型
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
nfds:最大文件描述符值加1。通常可以传入所有需要监视的文件描述符的最大值加1。readfds:用于监视哪些文件描述符可以读取(即数据已准备好读取)。writefds:用于监视哪些文件描述符可以写入。exceptfds:用于监视哪些文件描述符发生了异常。timeout:指定等待事件的最长时间。如果为NULL,则select会阻塞直到有事件发生;如果设置为0,则为非阻塞模式;否则,设置为一个timeval结构体表示的超时时间。
select的使用
struct timeval timeout;
timeout

最低0.47元/天 解锁文章
4137

被折叠的 条评论
为什么被折叠?



