>  기사  >  php教程  >  php socket

php socket

PHP中文网
PHP中文网원래의
2016-05-23 08:39:001462검색

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)
	}
}

           

       

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.