资讯专栏INFORMATION COLUMN

Go socket实现多语言间通信

Enlightenment / 1733人阅读

摘要:它不局限于某一语言,这里我们主要讲语言基于实现通讯。序列化采用,数据格式比较简单支持多种语言。运行语言客户端,在目录下的或浏览器访问配置自己的网址输出结果小结选序列化,主要考虑它实现起来简单,很多语言支持。

前言

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

go run server.php

输出:

Waiting for clients

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

go run client.go

输出:

receive data string[6]:golang

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

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

php -f socket_client.php

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

输出结果:

client write success
server return message is:
php

小结:

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

links

目录

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31820.html

相关文章

  • 云计算、物联网让终端更智能

    摘要:在召开的移动智能终端峰会上,中国工程院院士邬贺铨发表致辞,他表示,借助窄带物联网云计算大数据分析等技术,智能终端正变得越来越智能。最后,邬贺铨表示,计算技术与操作系统及宽带移动通信技术为移动终端的智能化打下基础。  在召开的2016移动智能终端峰会上,中国工程院院士邬贺铨发表致辞,他表示,借助窄带物联网、云计算、大数据分析等技术,智能终端正变得越来越智能。用户通过移动智能终端获得更多的智能感...

    Corwien 评论0 收藏0
  • 带入gRPC:gRPC及相关介绍

    摘要:原文地址带入及相关介绍项目地址作为开篇章,将会介绍相关的一些知识。 原文地址:带入gRPC:gRPC及相关介绍 项目地址:go-grpc-example 作为开篇章,将会介绍 gRPC 相关的一些知识。简单来讲 gRPC 是一个 基于 HTTP/2 协议设计的 RPC 框架,它采用了 Protobuf 作为 IDL 你是否有过疑惑,它们都是些什么?本文将会介绍一些常用的知识和概念,更详...

    y1chuan 评论0 收藏0
  • 带入gRPC:gRPC及相关介绍

    摘要:带入及相关介绍原文地址带入及相关介绍项目地址作为开篇章,将会介绍相关的一些知识。 带入gRPC:gRPC及相关介绍 原文地址:带入gRPC:gRPC及相关介绍 项目地址:go-grpc-example 作为开篇章,将会介绍 gRPC 相关的一些知识。简单来讲 gRPC 是一个 基于 HTTP/2 协议设计的 RPC 框架,它采用了 Protobuf 作为 IDL 你是否有过疑惑,它们都...

    AJie 评论0 收藏0
  • docker进程模型,架构分析

    摘要:与容器内第一个进程进程看创建了这么多子进程,然后到了我们期待的自己中的进程就要被创建了,想想都有点小激动,然而。。。 Docker架构分析 [root@docker-build-86-050 ~]# ls /usr/bin |grep docker docker docker-compose docker-containerd docker-containerd-ctr docker-...

    mingzhong 评论0 收藏0
  • webSocket原理探索

    摘要:帧是发送数据的基本单位,下边是它的报文格式报文内容中规定了数据标示操作代码掩码数据数据长度等格式。首先我们明白了客户端和服务端进行消息传递是这样的客户端将消息切割成多个帧,并发送给服务端。服务端接收消息帧,并将关联的帧重新组装成完整的消息。 本文概述 Web Sockets的目标是在一个单独的持久连接上提供全双工、双向通信。在Javascript创建了Web Socket之后,会有一个...

    baukh789 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<