show code
package main
import (
"fmt"
"pressure/game"
"sync"
)
var waitGroup sync.WaitGroup
func main(){
waitGroup.Add(1)
go game.ConnSocket(serverAddr, waitGroup) //坑位, waitgroutp在此处传入的为值
waitGroup.Wait()
fmt.Println("main DONE!!!")
}复制代码package game
import (
"fmt"
"net"
"strconv"
"strings"
"sync"
)
var gameWait sync.WaitGroup
func ConnSocket(serverAddr string, wait sync.WaitGroup) {
var err error
Conn, err = net.Dial("tcp", serverAddr)
if err != nil {
fmt.Println("Error connected:", err.Error())
wait.Done()
return
}
gameWait = wait //赋值传递,并非地址
fmt.Println("connected OK:", Conn.RemoteAddr())
go readMessage()
}
func readMessage() {
fmt.Println("readMessage:")
for {
if OK:=dosomething(),OK{
gameWait.Done()
}
}
}复制代码
1092

被折叠的 条评论
为什么被折叠?



