西维蜀黍

【Linux】命令 - nc

Connect to UNIX domain socket

$ nc -U /tmp/socket  #Connect to UNIX-domain stream socket
$ nc -uU /tmp/socket #Connect to UNIX-domain datagram socket
  ...


【Linux】命令 - socat

socat

socat - Multipurpose relay (SOcket CAT)

Socat is a command line based utility that establishes two bidirectional byte streams and transfers data between them. Because the streams can be constructed from a large set of different types of data sinks and sources (see address types), and because lots of address options may be applied to the streams, socat can be used for many different purposes.

  ...


【Network】Sniff Unix Domain Socket

  ...


【Golang】解析命令行参数

Go provides a flag package supporting basic command-line flag parsing. We’ll use this package to implement our example command-line program.

Basic flag declarations are available for string, integer, and boolean options.

package main

import (
	"flag"
	"fmt"
)

func main() {

  // Here we declare a string flag word with a default value "foo" and a short description. This flag.String function returns a string pointer (not a string value); we’ll see how to use this pointer below.
	wordPtr := flag.String("word", "foo", "a string")

  // This declares numb and fork flags, using a similar approach to the word flag.
	numbPtr := flag.Int("numb", 42, "an int")
	boolPtr := flag.Bool("fork", false, "a bool")

  // It’s also possible to declare an option that uses an existing var declared elsewhere in the program. Note that we need to pass in a pointer to the flag declaration function.
	var svar string
	flag.StringVar(&svar, "svar", "bar", "a string var")

  // Once all flags are declared, call flag.Parse() to execute the command-line parsing.
	flag.Parse()

	fmt.Println("word:", *wordPtr)
	fmt.Println("numb:", *numbPtr)
	fmt.Println("fork:", *boolPtr)
	fmt.Println("svar:", svar)
	fmt.Println("tail:", flag.Args())
}
  ...


【Network】Benchmarking Unix Domain Socket

  ...