peerguard/rdt
2024-08-07 21:00:18 +08:00
..
config.go rdt: introduced RDT for reliable transmission 2024-05-12 20:25:01 +08:00
rdt.go deadline: close conn should return io.EOF 2024-08-07 21:00:18 +08:00
README.md introducing the RDT protocol 2024-05-22 21:41:44 +08:00
stats.go rdt: add NCK/NCKQuery/ASKNCK to EventLoopGroup 2024-05-18 21:03:27 +08:00

RDT

a Reliable Data Transfer protocol.

Example

Server

packetConn, err := net.ListenPacket("udp", "192.168.3.99:22334")
if err != nil {
    panic(err)
}
listener, err := rdt.Listen(packetConn)
if err != nil {
    panic(err)
}

for {
    conn, err := listener.Accept()
    if err != nil {
        panic(err)
    }
    handle(conn)
}

Client

packetConn, err := net.ListenPacket("udp", "192.168.3.98:22335")
if err != nil {
    panic(err)
}
listener, err := rdt.Listen(packetConn)
if err != nil {
    panic(err)
}

conn, err := listener.OpenStream(&net.UDPAddr{
    IP:   net.ParseIP("192.168.3.99"),
    Port: 22334,
})
if err != nil {
    panic(err)
}
...