xtaci / kcp-go

A Crypto-Secure Reliable-UDP Library for golang with FEC
MIT License
4.05k stars 731 forks source link

Simple Messaging Example #69

Closed ohenepee closed 6 years ago

ohenepee commented 6 years ago

Can someone please write-up a simple client/server messaging example? I'm from the NodeJS world and want to test several RUDP implementations to check latency. Can someone please provide me with something that follows a simple "easy-to-grasp" UDP client/server example like below?

udp_client.go

package main

import (
    "fmt"
    "net"
    "time"
    "strconv"
)

func CheckError(err error) {
    if err  != nil {
        fmt.Println("Error: " , err)
    }
}

func main() {
    ServerAddr,err := net.ResolveUDPAddr("udp","127.0.0.1:10001")
    CheckError(err)

    LocalAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:0")
    CheckError(err)

    Conn, err := net.DialUDP("udp", LocalAddr, ServerAddr)
    CheckError(err)

    defer Conn.Close()
    i := 0
    for {
        msg := strconv.Itoa(i)
        i++
        buf := []byte(msg)
        _,err := Conn.Write(buf)
        if err != nil {
            fmt.Println(msg, err)
        }
        time.Sleep(time.Second * 1)
    }
}
xtaci commented 6 years ago

check the tests