Skip to content

Instantly share code, notes, and snippets.

@ianjuma
Created December 13, 2013 20:04
Show Gist options
  • Save ianjuma/7950466 to your computer and use it in GitHub Desktop.
Save ianjuma/7950466 to your computer and use it in GitHub Desktop.
Sample Go client-server
package main
import (
"encoding/json"
"fmt"
"net"
)
func server() {
ln, err := net.Listen("", ":8000")
if err != nil {
fmt.Println(err)
return
}
for {
c, err := ln.Accept()
if err != nil {
fmt.Println(err)
continue
}
go handleServerConnection(c)
}
}
func handleServerConnection(c net.Conn) {
var msg string
err := json.NewDecoder(c).Decode(&msg)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("Received", msg)
}
c.Close()
}
func client() {
c, err := net.Dial("tcp", "127.0.0.1:8000")
if err != nil {
fmt.Println(err)
return
}
msg := "Hello World"
fmt.Println("Sending", msg)
err = json.NewEncoder(c).Encode(msg)
if err != nil {
fmt.Println(err)
}
c.Close()
}
func main() {
go server()
go client()
var input string
fmt.Scanln(&input)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment