五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

8小時(shí)轉(zhuǎn)職Golang工程師(如果你想低成本學(xué)習(xí)Go語言)

2022-10-12 10:05 作者:隨風(fēng)的葉子  | 我要投稿

超時(shí)踢出功能:我直接使用net.Conn的方法,超過時(shí)間就不等待了,這樣我就可以退出當(dāng)前協(xié)程和關(guān)閉連接了。

func (s *Server) handler(user *User) {
   //監(jiān)聽信息的接收
   go func() {
      buf := make([]byte, 1024*4) //大小4KB
      for {
         user.Conn.SetReadDeadline(time.Now().Add(10 * time.Second))
         n, err := user.Conn.Read(buf)
         //nc被退出時(shí)觸發(fā),下線
         if n == 0 {
            user.Offline() //下線
            return
         }
         //異常處理(ctrl+c退出不屬于io.EOF,所以丟在下面吧)
         if err != nil && err != io.EOF {
            user.Offline() //出現(xiàn)異常,下線
            log.Printf("Conn.Read err: %v\n", err)
            return
         }
         //消息處理
         user.DealWithMessage(string(buf[:n-1]))
      }
   }()
}


------用戶下線代碼

// Offline 用戶下線
func (u *User) Offline() {
   s := u.server
   s.broadcast(u.Name+",下線!", u)
   s.lock.Lock()
   delete(s.onlineUsers, u.Name)
   s.lock.Unlock()
   u.Conn.Close() //關(guān)閉連接
}


8小時(shí)轉(zhuǎn)職Golang工程師(如果你想低成本學(xué)習(xí)Go語言)的評論 (共 條)

分享到微博請遵守國家法律
冀州市| 讷河市| 祁东县| 和硕县| 广宗县| 陇川县| 修武县| 米易县| 大港区| 大方县| 象山县| 沁源县| 柞水县| 昌都县| 白玉县| 教育| 扎囊县| 车致| 临猗县| 双鸭山市| 泊头市| 白朗县| 临夏县| 垫江县| 克拉玛依市| 灌阳县| 鄂伦春自治旗| 平罗县| 巢湖市| 棋牌| 明水县| 原平市| 天台县| 泌阳县| 阿克陶县| 沅陵县| 名山县| 襄垣县| 天气| 花莲市| 绩溪县|