diff --git a/tutorial/go/src/client.go b/tutorial/go/src/client.go
index 114de19..7f8d28f 100644
--- a/tutorial/go/src/client.go
+++ b/tutorial/go/src/client.go
@@ -69,9 +69,9 @@
 	return err
 }
 
-func runClient(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory) error {
+func runClient(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
 	var transport thrift.TTransport
-	transport, err := thrift.NewTSocket("localhost:9090")
+	transport, err := thrift.NewTSocket(addr)
 	if err != nil {
 		fmt.Println("Error opening socket:", err)
 		return err
diff --git a/tutorial/go/src/main.go b/tutorial/go/src/main.go
index 4b9576e..d371394 100644
--- a/tutorial/go/src/main.go
+++ b/tutorial/go/src/main.go
@@ -37,6 +37,8 @@
 	server := flag.Bool("server", false, "Run server")
 	protocol := flag.String("P", "binary", "Specify the protocol (binary, compact, simplejson)")
 	framed := flag.Bool("framed", false, "Use framed transport")
+	buffered := flag.Bool("buffered", false, "Use buffered transport")
+	addr := flag.String("addr", "localhost:9090", "Address to listen to")
 
 	flag.Parse()
 
@@ -55,17 +57,24 @@
 		Usage()
 		os.Exit(1)
 	}
-	transportFactory := thrift.NewTTransportFactory()
+
+	var transportFactory thrift.TTransportFactory
+	if *buffered {
+		transportFactory = thrift.NewTBufferedTransportFactory(8192)
+	} else {
+		transportFactory = thrift.NewTTransportFactory()
+	}
+
 	if *framed {
 		transportFactory = thrift.NewTFramedTransportFactory(transportFactory)
 	}
 
 	if *server {
-		if err := runServer(transportFactory, protocolFactory); err != nil {
+		if err := runServer(transportFactory, protocolFactory, *addr); err != nil {
 			fmt.Println("error running server:", err)
 		}
 	} else {
-		if err := runClient(transportFactory, protocolFactory); err != nil {
+		if err := runClient(transportFactory, protocolFactory, *addr); err != nil {
 			fmt.Println("error running client:", err)
 		}
 	}
diff --git a/tutorial/go/src/server.go b/tutorial/go/src/server.go
index 929e223..aea749e 100644
--- a/tutorial/go/src/server.go
+++ b/tutorial/go/src/server.go
@@ -25,8 +25,8 @@
 	"tutorial"
 )
 
-func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory) error {
-	transport, err := thrift.NewTServerSocket("localhost:9090")
+func runServer(transportFactory thrift.TTransportFactory, protocolFactory thrift.TProtocolFactory, addr string) error {
+	transport, err := thrift.NewTServerSocket(addr)
 	if err != nil {
 		return err
 	}
