github.com/database64128/shadowsocks-go@v1.7.0/conn/conn_mmsg.go (about)

     1  //go:build linux || netbsd
     2  
     3  package conn
     4  
     5  import (
     6  	"context"
     7  	"net"
     8  
     9  	"github.com/database64128/tfo-go/v2"
    10  )
    11  
    12  // ListenUDPRawConn is like [ListenUDP] but wraps the [*net.UDPConn] in a [rawUDPConn] for batch I/O.
    13  func ListenUDPRawConn(listenConfig tfo.ListenConfig, network, address string) (rawUDPConn, error) {
    14  	packetConn, err := listenConfig.ListenPacket(context.Background(), network, address)
    15  	if err != nil {
    16  		return rawUDPConn{}, err
    17  	}
    18  	return NewRawUDPConn(packetConn.(*net.UDPConn))
    19  }