udp

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2025 License: AGPL-3.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewLink(bufSize int) (*PacketLink, *PacketLink)

func UdpPacketToIpPacket

func UdpPacketToIpPacket(p *Packet) *buf.Buffer

This function will modify the payload of p, make it an ip packet p should not be used after this function is called

Types

type DdlPacketReaderWriter

type DdlPacketReaderWriter interface {
	PacketReaderWriter
	SetReadDeadline(time.Time) error
	SetWriteDeadline(time.Time) error
	SetDeadline(time.Time) error
}

type LinkToNetPacketConn

type LinkToNetPacketConn struct {
	*PacketLink
	LocalDestination net.Destination
}

func (*LinkToNetPacketConn) LocalAddr

func (pc *LinkToNetPacketConn) LocalAddr() net.Addr

func (*LinkToNetPacketConn) ReadFrom

func (pc *LinkToNetPacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err error)

func (*LinkToNetPacketConn) WriteTo

func (pc *LinkToNetPacketConn) WriteTo(p []byte, addr net.Addr) (n int, err error)

type Packet

type Packet struct {
	Payload *buf.Buffer
	Source  net.Destination
	Target  net.Destination
}

func (*Packet) Clone

func (p *Packet) Clone() *Packet

func (*Packet) Release

func (p *Packet) Release()
type PacketLink struct {
	WritePipe *PacketPipe
	ReadPipe  *PacketPipe
}

func (*PacketLink) Close

func (l *PacketLink) Close() error

func (*PacketLink) ReadPacket

func (l *PacketLink) ReadPacket() (*Packet, error)

func (*PacketLink) SetDeadline

func (l *PacketLink) SetDeadline(t time.Time) error

func (*PacketLink) SetReadDeadline

func (l *PacketLink) SetReadDeadline(t time.Time) error

func (*PacketLink) SetWriteDeadline

func (l *PacketLink) SetWriteDeadline(t time.Time) error

func (*PacketLink) WritePacket

func (l *PacketLink) WritePacket(packet *Packet) error

type PacketPipe

type PacketPipe struct {
	// contains filtered or unexported fields
}

implements net.PacketConn and PacketConn

func NewPacketPipe

func NewPacketPipe(bufSize int) *PacketPipe

func (*PacketPipe) Close

func (p *PacketPipe) Close() error

func (*PacketPipe) ReadPacket

func (p *PacketPipe) ReadPacket() (*Packet, error)

func (*PacketPipe) SetDeadline

func (p *PacketPipe) SetDeadline(t time.Time) error

SetDeadline sets both read and write deadlines.

func (*PacketPipe) SetReadDeadline

func (p *PacketPipe) SetReadDeadline(t time.Time) error

SetReadDeadline sets the read deadline.

func (*PacketPipe) SetWriteDeadline

func (p *PacketPipe) SetWriteDeadline(t time.Time) error

SetWriteDeadline sets the write deadline.

func (*PacketPipe) WritePacket

func (p *PacketPipe) WritePacket(packet *Packet) error

type PacketRW

type PacketRW struct {
	PacketReader
	PacketWriter
	OnClose func() error
}

implements PacketConn

func (*PacketRW) Close

func (p *PacketRW) Close() error

type PacketReader

type PacketReader interface {
	// Only one of the returned value is nil
	ReadPacket() (*Packet, error)
}

type PacketReaderToReadFromer

type PacketReaderToReadFromer struct {
	PacketReader
}

func (*PacketReaderToReadFromer) ReadFrom

func (rw *PacketReaderToReadFromer) ReadFrom(p []byte) (n int, addr net.Addr, err error)

type PacketReaderWriter

type PacketReaderWriter interface {
	PacketReader
	PacketWriter
}

type PacketWriter

type PacketWriter interface {
	// Owner of the p is transfered. Caller should not use p after calling this
	WritePacket(p *Packet) error
}

type PacketWriterToWriteToer

type PacketWriterToWriteToer struct {
	PacketWriter
}

func (*PacketWriterToWriteToer) WriteTo

func (rw *PacketWriterToWriteToer) WriteTo(p []byte, addr net.Addr) (n int, err error)

type ReadFromer

type ReadFromer interface {
	ReadFrom(p []byte) (n int, addr net.Addr, err error)
}

type ReaderFromerToPacketReader

type ReaderFromerToPacketReader struct {
	ReadFromer
}

used to adapt a net.PacketConn to a PacketConn

func (*ReaderFromerToPacketReader) ReadPacket

func (rw *ReaderFromerToPacketReader) ReadPacket() (*Packet, error)

type ReaderWriterAdaptor

type ReaderWriterAdaptor struct {
	PacketReaderWriter
	Addr net.Destination
}

adapts a PacketConn to a buf.ReaderWriter

func (*ReaderWriterAdaptor) ReadMultiBuffer

func (p *ReaderWriterAdaptor) ReadMultiBuffer() (buf.MultiBuffer, error)

func (*ReaderWriterAdaptor) WriteMultiBuffer

func (p *ReaderWriterAdaptor) WriteMultiBuffer(mb buf.MultiBuffer) error

type SecondDdlReaderWriter

type SecondDdlReaderWriter struct {
	DdlPacketReaderWriter
	Packets []*Packet
}

func (*SecondDdlReaderWriter) ReadPacket

func (r *SecondDdlReaderWriter) ReadPacket() (*Packet, error)

type UdpConn

type UdpConn interface {
	PacketReaderWriter
	Close() error
}

type WriteToer

type WriteToer interface {
	WriteTo(p []byte, addr net.Addr) (n int, err error)
}

type WriteToerToPacketWriter

type WriteToerToPacketWriter struct {
	WriteToer
}

func (*WriteToerToPacketWriter) WritePacket

func (rw *WriteToerToPacketWriter) WritePacket(p *Packet) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL