实现TCP/UDP回显服务器与epoll编程

125、编写一个能同时处理 TCP 和 UDP 客户端的回显服务器。为此,服务器必须创建一个监听 TCP 套接字和一个 UDP 套接字,然后使用合适的技术来监控这两个套接字。

要编写同时处理 TCP 和 UDP 客户端的回显服务器,步骤如下:

  1. 创建监听 TCP 套接字和 UDP 套接字;
  2. 使用如 select、poll 或 epoll 等技术来监控这两个套接字的事件;
  3. 当 TCP 套接字有新连接时,接受连接并处理客户端数据;
  4. 当 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),可参考如下步骤:

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值