|  |      1goofool      2020-07-29 13:50:39 +08:00 那就不是 TCP 协议了 | 
|  |      2nacosboy      2020-07-29 13:50:39 +08:00 你可以让 client 主动发送个信号给 server,server 收到信号后 panic,就不会发 FIN 了 | 
|  |      3ChristopherWu      2020-07-29 13:53:32 +08:00 为什么要这么做? | 
|  |      4Ariver      2020-07-29 13:54:31 +08:00 先搞明白 tcp/ip | 
|  |      5arthurblake      2020-07-29 13:57:17 +08:00 @barryzxb 优秀 | 
|      6heijiaotuan      2020-07-29 14:00:21 +08:00 客户端做一个假断开, 并且标记为可重用状态, 下一次有人用再断开上一个 socket. | 
|  |      8labulaka521 OP | 
|      9tempdban      2020-07-29 14:47:50 +08:00 via Android 搜索了一下,golang 貌似可以半关闭的。 https://stackoverflow.com/questions/23879000/net-tcpconn-allowing-write-after-fin-packet 这里您要关注一下,client 半关闭后收到 server 的 payload 会怎么处理,有可能是 rst,也有可能可以正常处理。 | 
|  |      11labulaka521 OP 使用 CloseWrite 即可 | 
|  |      12labulaka521 OP @goofool 可能你没理解我什么意思   别吵 此贴 终止 别回复了 | 
|      14LANB0      2020-07-29 14:57:26 +08:00 C 可以配置 SO_LINGER 来强制 reset,golang 没理由不能 | 
|  |      15ChristopherWu      2020-07-29 15:33:18 +08:00 @labulaka521 一个问题,先要有目标场景啊。有可能你说的做法并不是解决你这个问题的最佳办法。 如果你单纯只是想知道怎么做,直接说只是好奇,就好了——这种场景下,方法就更多了。 | 
|  |      16wangritian      2020-07-29 15:45:25 +08:00 好奇使用场景,学习一下 | 
|  |      17also24      2020-07-29 15:49:01 +08:00 | 
|  |      18labulaka521 OP | 
|  |      19labulaka521 OP @also24 学习了 | 
|  |      20labulaka521 OP @also24 这个真有趣 hhh | 
|  |      21Les1ie      2020-07-29 22:30:58 +08:00 场景有可能是大范围的 TCP 扫描   半开放的扫描只需要发送 syn 等待接收 ack,如果本地关闭了连接,内核可能会发送一个 fin,占用带宽,所以需要阻止系统内核发送 fin |