Пример #1
0
// StartServer starts up a listened at 127.0.0.1:<port> with a key space distributed over a given number of buckets.
func StartServer(port uint, buckets uint) {

	if buckets == 0 {
		log.Fatalf("<buckets> be positive. got %d.\n", buckets)
	}

	var db metastore.MetaStore
	db.Init(buckets)
	log.Printf("created storage with %d buckets\n", buckets)

	// listening on localhost
	addr := "127.0.0.1:" + strconv.FormatUint(uint64(port), 10)
	listener, err := net.Listen("tcp", addr)
	if err != nil {
		log.Fatal(err)
	}
	defer listener.Close()
	log.Printf("server listening on port %d\n", port)

	for {
		c, err := listener.Accept()
		if err != nil {
			log.Fatal(err)
		}
		go handleConnection(c, &db)
	}
}