go語言TCP連接池rocket049/connpool使用

安裝:
go get -v -u github.com/rocket049/connpool
go get -v -u gitee.com/rocket049/connpool

rocket049/connpool包是本人用go語言開發(fā)的提陶,提供一個通用的TCP連接池吆豹,初始化參數(shù)包括最高連接數(shù)微姊、超時秒數(shù)匙铡、連接函數(shù),放回連接池的連接被重新取出時,如果已經超時,將會自動重新連接出爹;如果沒有超時,連接將被復用缎除。

可調用的函數(shù):

type Conn
    func (s *Conn) Read(p []byte) (int, error)
    func (s *Conn) Write(p []byte) (int, error)
    func (s *Conn) Close() error
    func (s *Conn) Timeout() bool
type Pool
    func NewPool(max, timeout int, factory func() (net.Conn, error)) *Pool
    func (s *Pool) Get() (*Conn, error)
    func (s *Pool) Put(conn1 *Conn)
    func (s *Pool) Close()

調用示例:

import "gitee.com/rocket049/connpool"

func factory() (net.Conn,error) {
    return net.Dial("tcp","127.0.0.1:7060")
}

func UsePool() {
    // 設置連接池大小為10,超時秒數(shù)為30,連接函數(shù)為 factory
    pool1 := connpool.NewPool(10, 30 ,factory)
    defer pool1.Close()
    var wg sync.WaitGroup
    for i:=0;i<50;i++ {
        wg.Add(1)
        go func(n int){
            // 取出連接
            conn ,err := pool1.Get()
            if err!=nil {
                ...
            }
            //發(fā)送數(shù)據
            _,err = conn.Write( msg )
            if err!=nil{
                ...
            }
            //讀取數(shù)據
            n1,err := conn.Read( buf )
            if err!=nil{
                ...
            }
            //超時檢測和重連
            if conn.Timeout() {
                pool1.Put(conn)
                conn ,err := pool1.Get()
                ...
            }
            //放回連接池
            pool1.Put(conn)
            wg.Done()
        }(i)
    }
    wg.Wait()

}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末严就,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子器罐,更是在濱河造成了極大的恐慌梢为,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轰坊,死亡現(xiàn)場離奇詭異铸董,居然都是意外死亡,警方通過查閱死者的電腦和手機衰倦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門袒炉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旁理,“玉大人樊零,你說我怎么就攤上這事。” “怎么了驻襟?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵夺艰,是天一觀的道長。 經常有香客問我沉衣,道長郁副,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任豌习,我火速辦了婚禮存谎,結果婚禮上,老公的妹妹穿的比我還像新娘肥隆。我一直安慰自己既荚,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布栋艳。 她就那樣靜靜地躺著恰聘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吸占。 梳的紋絲不亂的頭發(fā)上晴叨,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音矾屯,去河邊找鬼兼蕊。 笑死,一個胖子當著我的面吹牛件蚕,可吹牛的內容都是我干的遍略。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼骤坐,長吁一口氣:“原來是場噩夢啊……” “哼绪杏!你這毒婦竟也來了?” 一聲冷哼從身側響起纽绍,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蕾久,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拌夏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僧著,經...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年障簿,在試婚紗的時候發(fā)現(xiàn)自己被綠了盹愚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡站故,死狀恐怖皆怕,靈堂內的尸體忽然破棺而出毅舆,到底是詐尸還是另有隱情,我是刑警寧澤愈腾,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布憋活,位于F島的核電站,受9級特大地震影響虱黄,放射性物質發(fā)生泄漏悦即。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一橱乱、第九天 我趴在偏房一處隱蔽的房頂上張望辜梳。 院中可真熱鬧,春花似錦泳叠、人聲如沸冗美。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粉洼。三九已至,卻和暖如春叶摄,著一層夾襖步出監(jiān)牢的瞬間属韧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工蛤吓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留宵喂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓会傲,卻偏偏與公主長得像锅棕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淌山,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348