3、实现TFTP文件传输3.1、文件传输协议实现 有了第2节的协议分析,我们基本了解了TFTP通信的协议,在这里,我们来实现TFTP的服务器端代码。 在监听的回调函数被触发调用时,首先从请求帧中获取操作码: - 3、实现TFTP文件传输
- 3.1、文件传输协议实现
- 有了第2节的协议分析,我们基本了解了TFTP通信的协议,在这里,我们来实现TFTP的服务器端代码。
- 在监听的回调函数被触发调用时,首先从请求帧中获取操作码:
根据操作码进行相应的处理:
- <div class="blockcode"><blockquote>tftp_opcode op = tftp_decode_op(pkt_buf->payload);
-
- switch (op)
- {
-
- case TFTP_RRQ: /* TFTP RRQ (read request) */
- tftp_extract_filename(FileName, pkt_buf->payload);
- tftp_process_read(upcb, addr, port, FileName);
- break;
-
- case TFTP_WRQ: /* TFTP WRQ (write request) */
- tftp_extract_filename(FileName, pkt_buf->payload);
- //在这个加入擦FALSH
- tftp_process_write(upcb, addr, port, FileName);
- break;
-
- default:
- /* sEndTransfera generic access violation message */
- tftp_send_error_message(upcb, addr, port, TFTP_ERR_ACCESS_VIOLATION);
- /* TFTP unknown request op */
- /* no need to use tftp_cleanup_wr because no "tftp_connection_args" struct has been malloc'd */
- udp_remove(upcb);
-
- break;
- }
|