golang net socks5 связь с тайм-аутом - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь создать отправителя электронной почты с поддержкой proxy / socks5, моя проблема в том, что когда я использую прокси в 70% случаев, перерыв в работе по причине тайм-аута, мой текущий код:

func SmtpSendOne(server SmtpServer, data *MailData) error {

    var remote net.Conn
    var err error
    if server.ProxyAddr != "" {
        dialer, err := proxy.SOCKS5("tcp", server.ProxyAddr, &server.ProxyAuth, proxy.Direct)
        if err != nil {
            log.Println("Could not connect to proxy: ", err)
            return err
        }
        remote, err = dialer.Dial("tcp", server.Host+ ":" + server.Port)
        if err != nil {
            log.Println("Could not connect to server: ", err)
            return err
        }
    }

я пыталсячтобы сначала использовать это решение для вызова этой функции:

    SmtpSendOne(try, delegate,  smtpSrv, true)
    select {
        case res := <-delegate:
                success <-res
        case <-time.After(smtpTimeout):
                success <-false
    }

Но этот код не решил мою проблему, мои программы погибли через 5 минут работы, пример журнала https://ghostbin.com/paste/e87x5, как настроить тайм-аут для socks5связь?в документации golang не найдено никакой документации :( спасибо всем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...