我有两台服务器
router := createServer()
loginServer := createLoginServerMock()
servLogin := &http.Server{
Addr: ":9333",
Handler: loginServer,
}
testServer := &http.Server{
Addr: ":9444",
Handler: router,
}
loginServer.ListenAndServe()
testServer.ListenAndServe()
我想在它们创建后向它们发送请求?我怎样才能检测到这一点?
最佳答案
ListenAndServe 没有反馈机制来让您知道服务器何时准备就绪。您必须自己创建监听器并将其传递给 Server.Serve :
loginListener, err := net.Listen("tcp", ":9333")
if err != nil {
// TODO: handle err
}
testListener, err := net.Listen("tcp", ":9444")
if err != nil {
// TODO: handle err
}
// You may already start sending requests now. They will just wait until
// the servers call Accept on their respective listener (i.e. shortly after
// Serve is called).
servLogin := &http.Server{Handler: loginServer}
testServer := &http.Server{Handler: router}
go func() { log.Fatal(servLogin.Serve(loginListener)) }()
go func() { log.Fatal(testServer.Serve(testListener)) }()
关于go - 我如何知道两台服务器何时准备好接收请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53413791/