Network 网络编程
Add Reliability to UDP Application
现在有一个client要对多个slave发送UDP请求,并且需要确保有response返回。我的设计如下:
- 设计一个线程安全的FIFO的sendQueue, 作为待发送的消息队列。然后维护一个队列sendMsg作为已发送的消息队列。
- 当len(Queue)>0 ,就循环pop出message, 赋以流水号sequence, 然后send出去, 并且以sequence为索引将message存入sendMsg队列.
- 当sendMsg队列的每个项包括 sequence, message, count(该消息已经重发的次数)。
- 启动一个单独的进程,对sendMsg作轮询, 若count < MaxReSendTime , 则将message send,并且count; 若count >= MaxReSendTime, 则消息发送失败,作失败处理.