125、编写一个能同时处理 TCP 和 UDP 客户端的回显服务器。为此,服务器必须创建一个监听 TCP 套接字和一个 UDP 套接字,然后使用合适的技术来监控这两个套接字。
要编写同时处理 TCP 和 UDP 客户端的回显服务器,步骤如下:
- 创建监听 TCP 套接字和 UDP 套接字;
- 使用如 select、poll 或 epoll 等技术来监控这两个套接字的事件;
- 当 TCP 套接字有新连接时,接受连接并处理客户端数据;
- 当 UDP 套接字有数据到达时,读取数据并回显给客户端。
126、编写一个程序,使用 epoll_create() 创建一个 epoll 实例,然后立即使用 epoll_wait() 对返回的文件描述符进行等待。在这种情况下,当 epoll_wait() 接收到一个兴趣列表为空的 epoll 文件描述符时,会发生什么?为什么这可能是有用的?
当 epoll_wait() 接收到兴趣列表为空的 epoll 文件描述符时:
- 若超时时间设置为
-1,它会一直阻塞,直到有信号被捕获; - 若超时时间为
0,它会立即返回0,表示没有文件描述符就绪; - 若超时时间大于
0,它会阻塞相应的毫秒数,之后返回0。
这种情况的作用在于,程序可先创建 epoll 实例,后续再动态添加要监控的文件描述符,实现灵活的事件监控。
127、对一个名为 script.c 的程序进行以下修改:a) 标准的 script(1) 程序会在输出文件的开头和结尾添加显示脚本开始和结束时间的行。添加此功能。b) 添加代码以处理终端窗口大小的变化。
对于 a),需在脚本开始和结束时记录时间并添加到输出文件;对于 b),可参考如下步骤:

最低0.47元/天 解锁文章
707

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



