wqvbjhc / libuv_tcp

tcp server and client package using libuv
BSD 3-Clause "New" or "Revised" License
129 stars 60 forks source link

TCPClient发送失败问题~ #3

Open wey580231 opened 4 years ago

wey580231 commented 4 years ago

TCPClient中的AfterSend在发送失败时,将req放入writeparam_list_队列末尾。再回到sendinl函数的484行writep->buf.len = writecircularbuf.read(writep->buf_.base, writep->buftruelen); 时,若从writeparam_list_取出的writep再次从缓冲区中获取了一段数据,这样会不会造成之前发送失败时的数据被丢失了?

wqvbjhc commented 2 years ago

会的,AfterSend的功能就是把uv_write_t回收而已。不负责发送失败后的逻辑处理。 我想这部分逻辑可交给上层处理。一方请求得不到响应时,是继续请求还是放弃?