PHP 與go 通訊,Golang和php通信

不同語言之間的通信方式有很多種,這里我介紹一種最簡單通信方式,json-rpc。

Golang自帶json-rpc包,使用起來十分簡單,示例如下,提供一個簡單echo server。

package main

import (

"fmt"

"net"

"net/rpc"

"net/rpc/jsonrpc"

)

type Serve struct {

}

func (s *Serve) Echo(a *int, r *int) error {

*r = 1

return nil

}

func main() {

tcpAddr, err := net.ResolveTCPAddr("tcp", ":9001");

if err != nil {

fmt.Println(err)

return

}

l, err := net.ListenTCP("tcp", tcpAddr)

if err != nil {

fmt.Println(err)

return

}

serve := &Serve{}

rpc.Register(serve)

for {

conn, err := l.Accept()

if err != nil {

fmt.Println(err)

continue

}

go jsonrpc.ServeConn(conn)

}

}

php 客戶端代碼,示例如下。

$conn = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!$conn) {

return FALSE;

}

socket_set_option($conn, SOL_SOCKET, SO_SNDTIMEO, array(

"sec" => 0,

"usec" => 50000

));

$result = socket_connect($conn, '127.0.0.1', 9001);

$s = time();

$w = ['id' => time(), 'params' => [1], 'method' => 'Serve.Echo'];

socket_write($conn, json_encode($w));

$r = socket_read($conn, 1024);

socket_close($conn);

echo $r;

就這樣。

更多架構、PHP、GO相關踩坑實踐技巧請關注我的公眾號:PHP架構師

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534453.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534453.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534453.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 接口日志,PHP 開發 APP 接口--錯誤日志接口

APP 上線以后可能遇到的問題:① APP 強退② 數據加載失敗③ APP 潛在問題錯誤日志需要記錄的內容數據表 error_log 字段:idapp_id:app 類別 iddid:客戶端設備號version_id:版本號version_mini:小版本號erro…

php 空模塊,tp5.1配置空模塊,空方法

config/app.php//默認的空模塊名empty_module>index,controller/Error.php<?php namespace app\index\controller;use Env;use think\Controller;class Error extends Controller {//Db::connect(db_ck)//全局MISS路由 在route.php里面設置找不到控制器默認處理//Route:…

centos7php自啟動,centos7系統下nginx安裝并配置開機自啟動操作

這篇文章主要介紹了centos7系統下nginx安裝并配置開機自啟動操作方法,非常不錯&#xff0c;具有參考借鑒價值&#xff0c;需要的朋友可以參考下這篇文章主要介紹了centos7系統下nginx安裝并配置開機自啟動操作方法,非常不錯&#xff0c;具有參考借鑒價值&#xff0c;需要的朋友…

時鐘php,php+js液晶時鐘

php代碼$size_small5;//液晶寬度$size_big25;//液晶長度$distance10;//間距$color_back"#DDDDDD";$color_dark"#CCCCCC";$color_light"#000000";$number0;?>Timer|www.ibtf.net|www.bitefu.netfunction swapcolor(obj,onoff)//改變顏色{if (…

r和matlab學哪個,初學者求教‘r*’是什么意思啊

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓PLOT(X,Y,S) where S is a character string made from one elementfrom any or all the following 3 columns:b blue . point - solidg green o circle : dottedr red x x-mark -. dashdotc cyan plus -- dashedm magenta * star…

php swoole 心跳,聊聊swoole的心跳

來自&#xff1a;桶哥的一篇關于swoole的心跳的文章&#xff0c;作為Swoole顧問(顧得上就問,是為「顧問」)得推一下這篇文章&#xff0c;最后只留下一配置&#xff0c;其實我也不是太明白原理&#xff0c;我在想如果是局域網里還需要心跳&#xff1f;—————————————…

mysql 查詢 投影,MySql-連接查詢

連接查詢Chloe 友好支持多表連接查詢&#xff0c;一切都可以用 lambda 表達式操作&#xff0c;返回類型可以是自定義類型&#xff0c;也可以是匿名類型。強類型開發&#xff0c;編譯可見錯誤&#xff0c;容錯率高。1.建立連接&#xff1a;var user_city_province context.Quer…

php 遞歸欄目名疊加,thinkPHP實現遞歸循環欄目并按照樹形結構無限極輸出的方法,thinkphp遞歸...

thinkPHP實現遞歸循環欄目并按照樹形結構無限極輸出的方法&#xff0c;thinkphp遞歸本文實例講述了thinkPHP實現遞歸循環欄目并按照樹形結構無限極輸出的方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;這里使用thinkphp遞歸循環欄目按照樹形結構無限極輸出&#…

php cannot call constructor,安裝ECshop普遍問題的解決方法

安裝時的問題&#xff1a;1.Strict Standards: Non-static method cls_image::gd_version() should not be called statically in /usr/local/httpd2/htdocs/upload/install/includes/lib_installer.php on line 31解決&#xff1a;找到install/includes/lib_installer.php中的…

wind試用版 matlab,免費產品試用 - MATLAB Simulink

請選擇其一AlabamaAlaska美屬薩摩亞APO/FPO AAAPO/FPO AEAPO/FPO APArizonaArkansasCaliforniaCaroline IslandsColoradoConnecticutDelawareDistrict of ColumbiaFlorida格魯吉亞關島HawaiiIdahoIllinoisIndianaIowaKansasKentuckyLouisianaMaineMariana Islands馬紹爾群島Mar…

php yii2 sns,GitHub - yggphpcoder/iisns: 基于 yii2 的 sns 社區系統,一站式解決社區建站...

iisns - 地球村入口iiSNS 是基于 yii2 的 SNS 社區系統&#xff0c;一站式解決社區建站。可以寫文章&#xff0c;做記錄&#xff0c;上傳圖片&#xff0c;論壇聊天等。還可以用來做內容管理系統(CMS)。iiSNS 是一個免費的開源項目&#xff0c;在 MIT 許可證下授權發布。特點與功…

php mvc 商城,基于MVC框架的小型網上商城設計

2&#xff0e;本人對課題任務書提出的任務要求及實現預期目標的可行性分析基于MVC框架的小型網上商城實現的功能&#xff1a;商品的瀏覽、查詢、購買&#xff0c;會員注冊以及會員訂單的查詢等&#xff0c;方便商場活動&#xff0c;該系統基本實現了網上商城的應有功能。該系統…

php 做更新進度條,PHP exec()后更新Bootstrap進度條

我使用PHP來運行一個python腳本&#xff0c;并且在腳本執行后需要更新一個進度條。進度條更新后&#xff0c;將執行另一個腳本&#xff0c;依此類推。這里是我的代碼如此的票價。我試圖用JavaScript來實現。它沒有解決Button Textif (isset($_POST[turn])){exec("sudo pyt…

zblog php和asp功能,ZBlog是否適合PHP或ASP?我們該如何選擇?

我最近玩了zblog一段時間&#xff0c;對于大多數第一次聯系zblog的博客&#xff0c;他們會問zblog是否適合PHP或ASP&#xff1f;我們該如何選擇&#xff1f;事實上&#xff0c;我真的不明白這個問題。我個人更喜歡PHP。今天我將整理出來并對PHP版本和ASP版本進行比較&#xff0…

php js記住密碼功能,jquery.cookie.js實現用戶登錄保存密碼功能的方法_jquery

本文實例講述了jquery.cookie.js實現用戶登錄保存密碼功能的方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;需要導入的js有jquery.js和jquery.cookie.js在頁面加載時首先嘗試獲取cookie的值&#xff0c;如果cookie有值&#xff0c;則將獲取到的值填入輸入框中&am…

oracle dbf 超大,oracle?數據庫users01.dbf文件過大?轉移方法

如果出現 linux 拒絕錯誤&#xff0c;可以把目錄權限 該為777由于在安裝的時候將Oracle安裝到了C盤&#xff0c;表空間也創建到了C盤(當時沒有在意)&#xff0c;等項目進行到了中期&#xff0c;發現C盤的空間不夠用了。此時&#xff0c;一個較好的解決辦法就是將表空間的文件轉…

oracle中exists連接兩個表,IN、EXISTS、多表連接,哪個速度更快

本帖最后由 ghsau 于 2011-10-11 23:39 編輯請看下面三個執行計劃(Oracle10g)1. 用INSQL> select ename from emp e where e.deptno in (select d.deptno from dept d where d.dnameSALES);PLAN_TABLE_OUTPUT------------------------------------------------------------…

php決策管理,報表管理與數據分析:為系統未來發展規劃提供決策依據,有效避免IT管理與投資的盲目??...

據了解&#xff0c;很多中大型企事業單位的IT基礎結構具有復雜、分散等特征&#xff0c;并且信息化程度越高&#xff0c;數據類型越繁雜&#xff0c;數據量也越龐大。許多單位不得不付出極大的人力、物力對網絡進行管理。而一個單位的信息化的程度和IT部門的服務水平&#xff0…

oracle遷移undo表空間,oracle切換undo表空間

Oracle里的回滾表空間在數據庫使用一段時間后&#xff0c;undo表空間的dbf文件往往會增長到比較大&#xff0c;這個時候我們需要切換undo表空間1.新建undo表空間SQL> create undo tablespace undotbs2 datafile /data/undotbs02.dbf size 10M autoextend on next 10M ;2.由于…

pppoe linux 配置文件,linux PPPOE服務端配置

查看pppo服務器安裝包pm -qa | grep pppoe 可以看到系統中pppoe server安裝包rpm -ql rp-pppoe-3.5-2 查看該安裝包安裝信息(如安裝路徑,配置文件等),如果有信息輸出,你可以看到這一行:/sbin/pppoe-serverps -e | grep pppoe-serve 查看pppoe服務有沒有運行,如果沒有,則啟動: p…