kubo/Godeps/_workspace/src/github.com/h2so5/utp
2014-11-20 09:14:48 -08:00
..
benchmark updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
ucat updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
.gitignore updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
.travis.yml updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
addr.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
buffer.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
conn.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
dial.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
LICENSE updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
listener.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
log.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
packet.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
README.md updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
utp_test.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00
utp.go updated multiaddr + added utp 2014-11-20 09:14:48 -08:00

utp

μTP (Micro Transport Protocol) implementation

Build status Build Status GoDoc

http://www.bittorrent.org/beps/bep_0029.html

warning: This is a buggy alpha version.

Benchmark History

Benchmark status

Installation

go get github.com/h2so5/utp

Example

Echo server

package main

import (
	"time"

	"github.com/h2so5/utp"
)

func main() {
	ln, _ := utp.Listen("utp", ":11000")
	defer ln.Close()

	conn, _ := ln.AcceptUTP()
	conn.SetKeepAlive(time.Minute)
	defer conn.Close()
	
	for {
		var buf [1024]byte
		l, err := conn.Read(buf[:])
		if err != nil {
			break
		}
		_, err = conn.Write(buf[:l])
		if err != nil {
			break
		}
	}
}