加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[Go] 测试go连接imap的tcp长连接

发布时间:2021-05-21 06:46:28 所属栏目:大数据 来源: https://www.jb51.cc
导读:连接上imap服务后,什么都不操作,我测试大约5分钟会被服务端断掉,测试代码如下 imapClient,_ := client.Dial( " imap.sina.net:143 " ) for { time .Sleep( time .Second * 1 ) } 为了保持住这条连接,每隔10秒列取一下邮件夹列表,这样就可以一直保持住连

连接上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-imapgithub.com/emersion/go-imap/client
)

func main() {
    imapClient,_ := client.Dial()
    err := imapClient.Login(shihan2@sopans.com",密码fmt.Println(err)
    10)
        mailBoxes := make(chan *imap.MailBoxInfo,1)">20)
        go func() {
            imapClient.List("",1)">*,mailBoxes)
        }()
    }
}

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读