20.第一个Netcat的实现

https://github.com/chenshuo/recipes/blob/master/tpc/bin/netcat.cc

准确说不是每个连接对应一个线程,每个连接对应两个线程,每个线程只管半个连接,管理其中一个方向,收/发,读或者写。

go语言中线程代价低,go routine,channel,select

线程模仿go routine,阻塞队列可以模仿channel

主线程读stdin写socket,另一个线程读socket写stdout

两个线程要么阻塞在read/write上

问题:如何通知另一个线程退出?

进程退出有两个条件,1、读stdin返回0,break 2,读socket返回0,break

阻塞IO有节流限速功能

相关文章:

  • 2022-01-18
  • 2022-12-23
  • 2022-12-23
  • 2021-11-01
  • 2021-11-08
  • 2021-05-04
  • 2021-12-12
  • 2021-11-10
猜你喜欢
  • 2022-12-23
  • 2021-06-21
  • 2022-03-09
  • 2021-04-02
  • 2021-09-09
  • 2021-07-11
  • 2021-06-01
相关资源
相似解决方案