PkgGoDev Build Status codecov Go Report Card LICENSE
Package sendfile wraps the sendfile system call.
go get github.com/hslam/sendfile
import "github.com/hslam/sendfile"
package main import ( "fmt" "github.com/hslam/sendfile" "net" "os" ) func main() { srcName := "srcfile" srcFile, err := os.Create(srcName) if err != nil { panic(err) } defer os.Remove(srcName) defer srcFile.Close() contents := "Hello world" srcFile.Write([]byte(contents)) lis, err := net.Listen("tcp", ":9999") if err != nil { panic(err) } defer lis.Close() done := make(chan bool) go func() { conn, _ := lis.Accept() defer conn.Close() buf := make([]byte, len(contents)) n, _ := conn.Read(buf) fmt.Println(string(buf[:n])) close(done) }() conn, _ := net.Dial("tcp", "127.0.0.1:9999") if _, err = sendfile.SendFile(conn, int(srcFile.Fd()), 0, int64(len(contents))); err != nil { fmt.Println(err) } conn.Close() <-done }
Hello world
This package is licensed under a MIT license (Copyright (c) 2020 Meng Huang)
sendfile was written by Meng Huang.