去& PHP套接字通信

时间:2015-05-08 09:02:45

标签: php sockets go

我使用以下代码在PHP脚本和Go之间创建了一个连接:

  

Go(服务器):

ln, err1 := net.Listen("tcp", ":5432")
if err1 != nil{
    fmt.Println(err1.Error())
    return
}
conn, err2 := ln.Accept()
if err2 != nil{
    fmt.Println(err2.Error())
    return
}

buf := make([]byte, 11)
_, err3:= conn.Read(buf)
if err3 != nil{
    fmt.Println(err3.Error())
    return
}
fmt.Println(string(buf))

_, err := conn.Write([]byte("HELLO WORLD"))
if err != nil {
    fmt.Println(err.Error())
    return
}
  

PHP(客户端):

$address = gethostbyaddr("localhost"); 
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if($socket === false){
    echo "socket_create() failed: reason: " . socket_strerror(socket_last_error());
}

$result = socket_connect($socket, $address, 5432); 
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror(socket_last_error($socket));
} 

if($socket!==false && $result!==false)
    echo "ok";

socket_write($socket, "hello world", 11); 
fflush($socket);
if($out = socket_read($socket, 4)){ 
    echo $out;
}

我可以在Go服务器上连接并接收“hello world”。
问题:当我尝试将某些内容发送回PHP时。我得到的只是_, err := conn.Write([]byte(msg + "\n"))上的“无效参数”。

0 个答案:

没有答案