Golang net.Pipe() function example

package net

Golang net.Pipe() function usage example

 package main

 import (
 "net"
 )

 func Client(c net.Conn) { ... }

 func Server(c net.Conn) { ... }

 func main() {
  c1, c2 := net.Pipe()
  go Server(c1)
  Client(c2)

 msg := "Message to client"
 _, err := c1.Write([]byte(msg))

 if err != nil {
 fmt.Printf("Unable to send message : %v\n", err)
 break
 } else {
 fmt.Printf("Sent : %s", msg)
 msg = ""
 }


 }

NOTE : You can use net.Listener to setup net.Conn as well. For example :

 func AcceptConnections(listener net.Listener) {
 conn, err := listener.Accept()

 if err != nil {
 panic(err)
 }

 fmt.Printf("client connected\n")
 ....
 }

Reference :

http://golang.org/pkg/net/#Pipe

Advertisement