我是靠谱客的博主 土豪歌曲,这篇文章主要介绍Golang和php通信,现在分享给大家,希望可以做个参考。

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

不同语言之间的通信方式有很多种,这里我介绍一种最简单通信方式,json-rpc。

Golang自带json-rpc包,使用起来十分简单,示例如下,提供一个简单echo server。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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 客户端代码,示例如下。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$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架构师

转载于:https://my.oschina.net/u/222608/blog/752464

最后

以上就是土豪歌曲最近收集整理的关于Golang和php通信的全部内容,更多相关Golang和php通信内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部