Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - two/tspool: tcp server pool
tcp server pool. Contribute to two/tspool development by creating an account on GitHub.
Visit SiteGitHub - two/tspool: tcp server pool
tcp server pool. Contribute to two/tspool development by creating an account on GitHub.
Powered by 0x5a.live ๐
tspool
A TCP Library use worker pool to improve performance and protect your server.
Install
go get github.com/two/tspool
Usage
Build your server with tspool
server
package main
import (
"github.com/two/tspool"
"log"
"net"
)
func main() {
wp, err := tspool.DefaultWorkerPool(100, 200)
if err != nil {
log.Fatalln(err)
}
server := &tspool.Server{
Addr: "0.0.0.0:8088",
Handler: handler,
ErrHandler: errHandler,
WorkerPool: wp,
RejectHandler: rejectHandler,
}
err = tspool.ListenAndServe(server)
if err != nil {
log.Fatalln(err)
}
}
func handler(c net.Conn) {
addr := c.RemoteAddr()
c.Write([]byte("hello"))
c.Close()
log.Println(addr.String())
}
func errHandler(c net.Conn, err string) {
defer c.Close()
log.Fatalln("run server error: " + err)
}
func rejectHandler(c net.Conn, err string) {
defer c.Close()
log.Println("reject connect error: " + err)
}
Build your tspool client
package main
import (
"log"
"net"
"sync"
"time"
)
var wg = new(sync.WaitGroup)
func main() {
var num int = 2000
wg.Add(num)
for i := 0; i < num; i++ {
go conn()
}
wg.Wait()
log.Println("done")
}
func conn() {
defer wg.Done()
addr := "0.0.0.0:8088"
d := net.Dialer{Timeout: 100 * time.Millisecond}
conn, err := d.Dial("tcp", addr)
if err != nil {
log.Fatalln(err)
}
defer conn.Close()
raddr := conn.LocalAddr()
var r = make([]byte, 1024)
_, err = conn.Read(r)
if err != nil {
log.Printf(raddr.String() + " read error: " + err.Error())
}
log.Printf(raddr.String() + " got " + string(r))
}
Define your own worker pool and worker
Example
GoLang Resources
are all listed below.
GitHub - GuilhermeCaruso/anko: :crystal_ball: Simple application watcher
resource
~/github.com
resource
GitHub - jidicula/go-fuzz-action: GitHub Action for Go 1.18 fuzz testing
resource
~/github.com
resource
GitHub - tucnak/climax: Climax is an alternative CLI with the human face
resource
~/github.com
resource
GitHub - lawrencewoodman/roveralls: A Go recursive coverage testing tool
resource
~/github.com
resource
GitHub - nakagami/firebirdsql: Firebird RDBMS sql driver for Go (golang)
resource
~/github.com
resource
GitHub - liweiyi88/onedump: Effortlessly database dump with one command.
resource
~/github.com
resource
GitHub - beefsack/go-astar: Go implementation of the A* search algorithm
resource
~/github.com
resource
GitHub - lxn/walk: A Windows GUI toolkit for the Go Programming Language
resource
~/github.com
resource
GitHub - mongodb/mongo-go-driver: The Official Golang driver for MongoDB
resource
~/github.com
resource
GitHub - bykof/gostradamus: Gostradamus: Better DateTimes for Go ๐ฐ๏ธ
resource
~/github.com
resource
GitHub - mozillazg/go-unidecode: ASCII transliterations of Unicode text.
resource
~/github.com
resource
GitHub - bolknote/go-gd: Go bingings for GD (http://www.boutell.com/gd/)
resource
~/github.com
resource
GitHub - mosajjal/dnsmonster: Passive DNS Capture and Monitoring Toolkit
resource
~/github.com
resource
GitHub - haxpax/gosms: :mailbox_closed: Your own local SMS gateway in Go
resource
~/github.com
resource
GitHub - wajox/gobase: This is a simple skeleton for golang applications
resource
~/github.com
resource
GitHub - VividCortex/gohistogram: Streaming approximate histograms in Go
resource
~/github.com
resource
GitHub - malaschitz/randomForest: Random Forest implementation in golang
resource
~/github.com
resource
GitHub - google/gopacket: Provides packet processing capabilities for Go
resource
~/github.com
resource
GitHub - khezen/evoli: Genetic Algorithm and Particle Swarm Optimization
resource
~/github.com
resource
GitHub - didip/tollbooth: Simple middleware to rate-limit HTTP requests.
resource
~/github.com
resource
GitHub - mustafaakin/gongular: A different approach to Go web frameworks
resource
~/github.com
resource
GitHub - songgao/colorgo: Colorize (highlight) `go build` command output
resource
~/github.com
resource
Made with โค๏ธ
to provide different kinds of informations and resources.