前言socket提供了一种在传输层进行网络编程的方法,比基于http协议的接口传输效率更高。RPC(RemoteProcedureCall)是远程过程调用,常用于分布式系统等,很多rpc都是基于socket实现的。如果对socket、http等协议不了解,请阅读https://blog.csdn.net/guyan03...。Socket可以以“打开->读写write/read->关闭close”的方式进行操作。它不限于某种语言。这里主要说说Go和php语言实现基于sockets的通信。序列化采用json,数据格式比较简单,支持多种语言。Gosocket采用c/s架构Client:net.Dial()Write()Read()Close()Server:net.Listen()Accept()Read()Write()Close()源码地址:https://github.com/guyan0319/...测试1.下载源码到GOPATH目录下golangSocketPhp2,运行server,example目录下server.gogorunserver.php输出:Waitingforclients3,在新窗口运行客户端,在client.gogo示例目录下运行client.gooutputs:receivedatastring[6]:golanggolang这是服务器返回的数据。4.运行php语言客户端,在php目录下或浏览器中socket_client.phpphp-fsocket_client.php访问http://localhost/xxx/socket_c...配置自己的URL输出结果:客户端写入成功服务器返回信息为:php总结:选择json序列化,主要考虑实现简单,支持多种语言。缺点是序列化效率低,序列化后的数据比较大(这里对比protobuf)。链接目录
