前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go socket实现多语言间通信

Go socket实现多语言间通信

作者头像
孤烟
发布2020-09-27 11:06:49
9500
发布2020-09-27 11:06:49
举报
文章被收录于专栏:golang开发笔记golang开发笔记

前言

socket提供了在传输层进行网络编程的方法,它比基于http协议的接口传输更高效,RPC(Remote Procedure Call)是远程过程调用,常用于分布式系统等,而rpc很多是基于socket实现的。不了解socket、http等协议请阅读

https://blog.csdn.net/guyan03...

Socket 都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。它不局限于某一语言,这里我们主要讲Go、php语言基于socket实现通讯。

序列化采用json,数据格式比较简单,支持多种语言。

Go socket 采用c/s架构

客户端:net.Dial() Write() Read() Close()

服务器:net.Listen() Accept() Read() Write() Close()

源代码地址:https://github.com/guyan0319/...

测试

1、下载源代码至GOPATH目录golangSocketPhp

2、运行服务端,在example目录下server.go

代码语言:javascript
复制
go run server.php

输出:

Waiting for clients

3、新窗口下运行客户端,在example目录下client.go

代码语言:javascript
复制
go run client.go

输出:

receive data string[6]:golang

golang这个是从服务端返回的数据。

4、运行php语言客户端,在php目录下的socket_client.php

代码语言:javascript
复制
php -f socket_client.php

或浏览器访问 http://localhost/xxx/socket_c... 配置自己的网址

输出结果:

client write success server return message is: php

小结:

选json序列化,主要考虑它实现起来简单,很多语言支持。缺点是序列化效率低,序列化后数据相对比较大(这里跟protobuf对比)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 测试
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档