go - 我如何知道两台服务器何时准备好接收请求?
问题描述
我有两台服务器
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)) }()
推荐阅读
- javascript - 使用超链接在 ascx.vb 文件上调用函数
- flutter - 使用谷歌地图颤振包显示方向?
- vba - 在复制 Outlook 约会时更改一些值
- terraform - SERVICE_QUOTA cloudwatch ecs 警告 terraform 中的验证错误
- html - 如何使我的网页图标保持正确?
- sql - PLSQL 过程输出具有奇怪的块
- r - 如果找到特定字符,则用 NA 替换整个值
- swift - 如何在 SwiftUI 中访问 TupleView 的视图?
- python - 在连接之前通过预处理/清理迭代 Pandas 块
- python - python中(1LL << X)的等价物是什么?