刺鸟原创文章,转载请注明出处
    由于项目的服务端服务端采用了PHP+python的结构,这必然就会涉及到2个语言,即:PHP和python之间的通信处理。
    python要主动向PHP发送数据,很简单,通过http方式调用接口即可,而PHP要向python发送数据,则需要使用到php的socket相关功能,该功能的最简代码如下:

/*socket收发数据
@host(string) socket服务器IP
@post(int) 端口
@str(string) 要发送的数据
@back 1|0 socket端是否有数据返回

返回true|false|服务端数据
*/
function sendSocketMsg($host,$port,$str,$back=0){
    $socket = socket_create(AF_INET,SOCK_STREAM,0);
    if ($socket < 0) return false;
    $result = @socket_connect($socket,$host,$port);
    if ($result == false)return false;
    socket_write($socket,$str,strlen($str));
    
    if($back!=0){
        $input = socket_read($socket,1024);
        socket_close ($socket);    
        return $input;
    }else{
        socket_close ($socket);    
        return true;    
    }    
}

    socker_read的第二个参数用以指定读入的字节数,你可以通过它来限制从客户端获取数据的大小。
    注意:socket_read函数会一直读取壳户端数据,直到遇见\n,\t或者\0字符,PHP脚本把这些字符看做是输入的结束符。

#本文由刺鸟原创,欢迎转载,但请保留出处,也欢迎对本文感兴趣的同学多多交流。#