Skip to content

devlights/go-unix-domain-socket-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-unix-domain-socket-example

Unix domain socket (UDS) example by golang

How to Run

Using go-task

$ task --list
* run-basic:            run basic example
* run-readwrite:        run readwrite example
* run-readwrite2:       run readwrite2 example
* run-usinggob:         run usinggob example

$ task [run-basic|run-readwrite|run-readwrite2|run-usinggob]

basic

Open two terminals. the one is following:

$ cd cmd/basic/server
$ go run .

and another terminal is following:

$ cd cmd/basic/client
$ go run .

read & write per connection

Open two terminals. the one is following:

$ cd cmd/readwrite/server
$ go run .

and another terminal is following:

$ cd cmd/readwrite/client
$ go run .

N read & write on one connection

Open two terminals. the one is following:

$ cd cmd/readwrite2/server
$ go run .

and another terminal is following:

$ cd cmd/readwrite2/client
$ go run .

Using encoding/gob package

Open two terminals. the one is following:

$ cd cmd/usinggob/server
$ go run .

and another terminal is following:

$ cd cmd/usinggob/client
$ go run .

Monitor a local unix domain socket

use socat. install it if not exists.

$ sudo apt install -y socat

and launch server program then input following commands.

$ mv /tmp/echo.sock /tmp/echo.sock.original
$ socat -t100 -x -v UNIX-LISTEN:/tmp/echo.sock,mode=777,reuseaddr,fork UNIX-CONNECT:/tmp/echo.sock.original

REFERENCES

Can I monitor a local unix domain socket like tcpdump?