[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)
        }()
    }
}
复制代码

 

posted @   唯一客服系统开发笔记  阅读(701)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2018-11-21 [PHP] 理解依赖注入
2018-11-21 [日常]总结2016年7月入职至2016年7月26号微盘所遇bug
点击右上角即可分享
微信分享提示
1
chat with us