面试题答案
一键面试- 可读事件(Readable Event):
- 影响:当Socket接收到数据或者连接建立时会触发可读事件。应用程序可以在此时调用读取数据的函数(如
recv
)从Socket中读取数据,避免了在无数据时的阻塞等待,提高了程序的并发处理能力。
- 影响:当Socket接收到数据或者连接建立时会触发可读事件。应用程序可以在此时调用读取数据的函数(如
- 可写事件(Writable Event):
- 影响:当Socket的发送缓冲区有空间可以写入数据时会触发可写事件。这意味着应用程序可以调用发送数据的函数(如
send
)向Socket写入数据,而不用担心发送缓冲区已满导致阻塞,保证数据能够及时发送。
- 影响:当Socket的发送缓冲区有空间可以写入数据时会触发可写事件。这意味着应用程序可以调用发送数据的函数(如
- 连接事件(Connection Event):
- 影响:对于客户端,连接成功时会触发连接事件,此时可以开始进行后续的读写操作;对于服务器端,有新的客户端连接请求到达时触发连接事件,服务器可以接受这个连接(如调用
accept
),并为新连接创建相应的处理逻辑。
- 影响:对于客户端,连接成功时会触发连接事件,此时可以开始进行后续的读写操作;对于服务器端,有新的客户端连接请求到达时触发连接事件,服务器可以接受这个连接(如调用
- 关闭事件(Close Event):
- 影响:当对方关闭连接或者本地调用关闭Socket的操作时触发关闭事件。应用程序需要及时处理该事件,进行资源清理(如关闭Socket描述符),释放相关的内存等资源,防止资源泄漏。