20210304思考下设计一个数据结构为map[string]net.Conn的Sender作为数据流动框架末端的可行性 - ziyouzy/2021blog GitHub Wiki

之前就发现当listen到一个net.Conn后是否应该先放入一个mgr,然后再把同一个net.Conn装配至usr-io808结构类
这里探讨的Sender或许和这个mgr是同一个东西,因为如果直接把net.Conn装配给内层某个riverconn,后立刻开启下次循环,外层就在也拿不到这个net.Conn了,这确实在逻辑上是行不通的 在或者说,装配的最正确逻辑应该如下:

go func(){
    for {
    /*在这里就会阻塞,或者说目前这里智能监听到一种类型的连接,也就是tcp*/
    con, err := listener.Accept()
    if err != nil { fmt.Println("tcp第三次握手错误:",err.Error());    continue }
    fmt.Println("tcp第三次握手成功高,开始收容")

        Clients[con.RemoteAddr().String()] =con//先放入字典

    //----uniqueid格式为:192.168.1.10:6668:TCP
    switch con.RemoteAddr().String(){
    case "192.168.1.10:6668":
    UniqueId = fmt.Sprintf("%s:TCP",con.RemoteAddr().String()) 

    testClinet := &Client{
        UniqueId: 			UniqueId,
	Signals: 			Signals,
	Errors: 			Errors,
	Fin_StampsNews: 	        Fin_StampsNews,
    }
    }
}()  

可以这么理解:
当初考虑需要有个net.Conn的MGR的意义,到如今或许变得只有一个了,那就是能让listen()所在的这一层找到各个在线的conn 初期这样设计就好,随着设计的深入,如果需要在给这个MGR添加更复杂的功能,那也就等遇到了再说吧