zoukankan      html  css  js  c++  java
  • [Go] 测试go连接imap的tcp长连接

    连接上imap服务后,什么都不操作,我测试大约5分钟会被服务端断掉,测试代码如下

        imapClient, _ := client.Dial("imap.sina.net:143")
        for {
            time.Sleep(time.Second * 1)
        }


    为了保持住这条连接,每隔10秒列取一下邮件夹列表,这样就可以一直保持住连接了。开三个窗口,一个窗口不停的netstat查看tcp连接情况,一个窗口运行代码,一个窗口打开tcpdump监听端口查看数据请求

    while true;do clear;date;netstat -altupn|grep 143;sleep 1;done

    tcpdump -i enp0s25 port 143 -vv

    可以看到每隔10秒会有数据传输

    完整测试代码

    package main
    
    import (
        "fmt"
        "time"
    
        "github.com/emersion/go-imap"
        "github.com/emersion/go-imap/client"
    )
    
    func main() {
        imapClient, _ := client.Dial("imap.sina.net:143")
        err := imapClient.Login("shihan2@sopans.com", "密码")
        fmt.Println(err)
        for {
            time.Sleep(time.Second * 10)
            mailboxes := make(chan *imap.MailboxInfo, 20)
            go func() {
                imapClient.List("", "*", mailboxes)
            }()
        }
    }
  • 相关阅读:
    [bzoj4364] [IOI2014]wall砖墙
    [bzoj3064] [Tyvj 1518] CPU监控
    [bzoj3434] [WC2014]时空穿梭
    ASP.NET
    ASP.NET
    ASP.NET
    ASP.NET
    ASP.NET
    ASP.NET
    MSSQL
  • 原文地址:https://www.cnblogs.com/taoshihan/p/11909292.html
Copyright © 2011-2022 走看看