This is a creation in Article, where the information may have evolved or changed.
Package Mainimport ("NET" "reflect" "FMT" "OS") Func main () {listener, _: = Net. Listen ("TCP", ": 8000") for {c, _: = Listener. Accept () Go Connhandler (c)}}func Connhandler (c net. Conn) {defer c.close () e: = reflect. TypeOf (c). Elem () N: = E.numfield () for I: = 0; I < n; i++ {fmt. fprintf (OS. Stdout, "E.field (%d) =%v%v\n", I, E.field (i). Name, E.field (i))}fmt. fprintf (OS. Stdout, "====================\n") V: = reflect. ValueOf (c) fmt. fprintf (OS. Stdout, "reflect. ValueOf (c)%v\n ", v) v = v.elem () fmt. fprintf (OS. Stdout, "reflect. ValueOf (c). Elem ()%v\n ", V) fmt. fprintf (OS. Stdout, "====================\n") for I: = 0; I < V.numfield (); i++ {fmt. fprintf (OS. Stdout, "V.field (%d) =%v%v\n", I, V.field (i), V.field (i). Type ()) switch V.field (i). Type (). Kind () {case reflect. Int:fmt. fprintf (OS. Stdout, "%d\n", V.field (i). Int ()))}}fmt. fprintf (OS. Stdout, "====================\n") fmt. fprintf (OS. Stdout, "reflect. ValueOf (c). Elem (). Fieldbyname (\ "fd\")%v\n ", V.fieldbyname (" FD ")) fmt. fprintf (OS. Stdout, "reflect. ValuEOf (c). Elem (). Fieldbyname (\ "fd\"). Elem ()%v\n ", reflect. ValueOf (c). Elem (). Fieldbyname ("FD"). Elem ()) v = reflect. ValueOf (c). Elem (). Fieldbyname ("FD"). Elem () fmt. fprintf (OS. Stdout, "====================\n") for I: = 0; I < V.numfield (); i++ {fmt. fprintf (OS. Stdout, "V.field (%d) =%v%v%s\n", I, V.field (i), V.field (i). Type (), V.field (i). String ()) switch V.field (i). Type (). Kind () {case reflect. Int:fmt. fprintf (OS. Stdout, "%d\n", V.field (i). Int ()))}}fmt. fprintf (OS. Stdout, "====================\n") SYSFD: = V.fieldbyname ("SYSFD") fmt. fprintf (OS. Stdout, "V.fieldbyname (\" sysfd\ ") =%v\n", SYSFD) FD: = UIntPtr (SYSFD. Int ()) fmt. fprintf (OS. Stdout, "fd%v\n", fd) F: = OS. NewFile (FD, "Listen socket") FMT. fprintf (OS. Stdout, "f =%v\n", f) conn, err: = Net. Fileconn (f) if err! = Nil {fmt. fprintf (OS. Stdout, "Err%v\n", err. Error ()) return}fmt. fprintf (OS. Stdout, "C%v\n", conn) Conn. Write ([]byte ("Hello World ~!\n")}
[Vicky@localhost ~]$ telnet 192.168.1.98 8000
Trying 192.168.1.98 ...
Connected to 192.168.1.98.
Escape character is ' ^] '.
Hello World!
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.