Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
vczyh
0.05D
V2EX  ›  Linux

如何让 TCP 出现 Accept()错误?

  •  
  •   vczyh · Jul 20, 2022 · 3629 views
    This topic created in 1568 days ago, the information mentioned may be changed or developed.
    	ctx := context.Background()
    
    	for {
    		conn, err := l.listener.Accept()
    		if err != nil {
    			// Close() was probably called.
            	// 想要走到这里,执行这行代码
    			connRefuse.Add(1)
    			return
    		}
    
    		acceptTime := time.Now()
    
    		connectionID := l.connectionID
    		l.connectionID++
    
    		connCount.Add(1)
    		connAccept.Add(1)
    
    		go func() {
    			if l.PreHandleFunc != nil {
    				conn, err = l.PreHandleFunc(ctx, conn, connectionID)
    				if err != nil {
    					log.Errorf("mysql_server pre hook: %s", err)
    					return
    				}
    			}
    
    			l.handle(conn, connectionID, acceptTime)
    		}()
    	}
    
    11 replies  •  2022-07-25 09:39:36 +08:00
    MoYi123
    MoYi123
    Jul 20, 2022
    1
    如果是需要单元测试, 那么就使用 gomock 等工具
    如果是需要学习, 那么可以看 accept 里的代码.
    pagxir
    pagxir
    Jul 20, 2022 via Android
    2
    ctrl+c 就可以了
    pagxir
    pagxir
    Jul 20, 2022 via Android
    3
    accept 比较容易触发的简单错误是 fd 消耗完,信号中断,连接异常,设置超时,这几个。
    DefoliationM
    DefoliationM
    Jul 20, 2022
    4
    l.listener.Close()
    aladdinding
    aladdinding
    Jul 20, 2022
    5
    too many fd
    danbai
    danbai
    PRO
    Jul 20, 2022
    6
    修改 tcp 最大连接数
    Crawping
    Crawping
    Jul 20, 2022
    7
    fd 耗尽
    Misakas
    Misakas
    Jul 21, 2022
    8
    歪个楼,有没有朋友能讲一下 fd 是哪两个单词的缩写
    yingqiuQAQ
    yingqiuQAQ
    Jul 21, 2022
    9
    @Misakas 文件描述符 file descriptor
    zizon
    zizon
    Jul 21, 2022
    10
    Accept 方法 override 一下不就完了...
    random return error
    vczyh
    vczyh
    OP
    Jul 25, 2022
    11
    感谢大家的回复,大体意思我明白了,我设置一下最大 fd
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4726 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 09:12 · PVG 17:12 · LAX 01:12 · JFK 04:12
    ♥ Do have faith in what you're doing.