代码框架为:
func NewSSHClient(ip string, port int, user, passwd string) (*SSHClient, error) {
config := &ssh.ClientConfig{
User: user,
Auth: []ssh.AuthMethod{
ssh.Password(passwd),
},
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
Timeout: 30 * time.Second,
}
sshConn, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", ip, port), config)
if err != nil {
return nil, err
}
sftpClient, err := sftp.NewClient(sshConn)
if err != nil {
return nil, err
}
return &SSHClient{
Ip: ip,
port: port,
user: user,
passwd: passwd,
ssh: sshConn,
sftp: sftpClient,
}, nil
}
func main() {
// errors := make(chan error)
limits := make(chan struct{}, 256)
var wg sync.WaitGroup
for host := range hosts {
wg.Add(1)
go func(host string) {
defer wg.Done()
defer func(limits *chan struct{}) { <-*limits }(&limits)
limits <- struct{}{}
for {
for _, ng := range nginxHost {
a, err := NewSSHClient(hosts[host], host)
if err != nil {
log.Errorf("%s NewMonitor fail err:%s", host, err)
time.Sleep(30 * time.Second)
continue
}
a.dosomething()
}
time.Sleep(30 * time.Second)
}
}(host)
}
wg.Wait()
}
出错还是比较有规律,比如某个服务器前面三次连接正常,第四次开始及以后都会一直报错No connection could be made because the target machine actively refused it.
看看这篇文章:https://dailydevsblog.com/troubleshoot/resolved-no-connection...
在测试设置中(单客户端服务器-运行Gatling的本地主机,在测试期间创建和关闭连接),我的单节点Zookeeper会保持所有TCP连接打开,直到测试运行完成。 在最初2分钟的测试运行中,我重复地并行创建多达10个客户端连接,这些连接存活了大约30秒,然后再次关闭它们的连接。所以在前2分钟的任何时候都有多达10个连接处于活动状态。然后测试继续8分钟,在此期间只有一个客户端连接处于活动状态。 客户端
当我尝试使用套接字将物理设备连接到服务器时,我遇到了一个问题。在服务器端,它似乎不接受任何连接,而在客户端,套接字超时。你知道为什么会这样吗? 我在下面提供我的代码 服务器代码: 客户端: 11-16 23:32:11.016:W/系统。错误(24213):java.net。ConnectException:无法连接到/192.168.1.116(端口9090):连接失败:ETIMEDOUT(连接
我制作了一个FTP客户端(被动),它无法连接到服务器。我使用的FTP服务器是Filezilla;我只是用它来测试。每次我运行java程序(FTP客户端)时,Filezilla都会断开连接,并在Eclipse中出现以下错误: 这是FTP客户端: 这是我连接的程序: 还尝试编写我的lan ip而不是
我目前有一个在非阻塞模式下使用 NIO java 库编写的桌面服务器。您可以在此处找到完整的服务器项目。我还创建了一个用于测试目的的非阻塞 NIO 客户端。你可以在这里找到这个项目。最后,服务器应该用于Android即时通讯应用程序。我使客户端和服务器都基于发送“数据包”进行通信的想法。我的意思是,Packet 类的引用被打包到字节缓冲区中并通过套接字通道发送。然后,它们在另一端反序列化并执行。
ssh连接服务执行如上代码,ssh连接会断开?好奇怪 执行结果 Connection to x.x.x.x closed. 执行系统 CentOS Linux release 7.8.2003 (Core)
运行一段时间服务占内存会很大 在本地telnet服务端口都不通 telnet 127.0.0.1 8082 重启服务之后问题会消失,但是运行一段时间又会重现