作者:309283099_882fa8 | 来源:互联网 | 2018-03-20 11:08
1.1,'c'=>3,'b'=>8);
$json = json_encode($s);
$f = $json."\n";
socket_write($socket,$f,strlen($f));
$string = "";
$buf = "";
while ($int = socket_recv($socket, $buf, 1204,MSG_WAITALL)){
$string .= $buf;
}
$arr = json_decode($string,true);
print_r($arr);
2.
package main
import (
"bufio"
"encoding/json"
"fmt"
"net"
"os"
)
type Server struct {
ServerName string
ServerIp string
}
type Serverslice struct {
Servers []Server
}
func main() {
service := ":4444"
tcpAddr, err := net.ResolveTCPAddr("tcp4", service)
checkError(err)
listener, err := net.ListenTCP("tcp", tcpAddr)
checkError(err)
fmt.Println("======>")
fmt.Println("启动侦听程序")
for {
conn, err := listener.Accept()
if err != nil {
continue
}
fmt.Println("=========>")
fmt.Println("侦听成功")
go handleClient(conn)
}
}
func handleClient(conn net.Conn) {
defer conn.Close()
var jsonStr Serverslice
jsonStr.Servers = append(jsonStr.Servers, Server{ServerName: "nc", ServerIp: "127.0.0.1"})
jsonStr.Servers = append(jsonStr.Servers, Server{ServerName: "sh", ServerIp: "127.0.0.2"})
jsonStr.Servers = append(jsonStr.Servers, Server{ServerName: "hn", ServerIp: "127.0.0.3"})
b, err := json.Marshal(jsonStr)
if err != nil {
fmt.Println("json err:", err)
}
a, _ := bufio.NewReader(conn).ReadString('\n')
fmt.Println(string(a))
conn.Write([]byte(b))
fmt.Println(string(b))
}
func checkError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
os.Exit(1)
}
}