`
hideto
  • 浏览: 2682905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Erlang和Ruby的Socket通讯

阅读更多
server.erl
-module(server).
-export([start/0,start/1,process/1]).
-define(defPort, 8888).

start() -> start(?defPort).

start(Port) ->
  case gen_tcp:listen(Port, [binary, {packet, 0}, {active, false}]) of
    {ok, LSock} -> server_loop(LSock);
    {error, Reason} -> exit({Port,Reason})
  end.

%% main server loop - wait for next connection, spawn child to process it
server_loop(LSock) ->
  case gen_tcp:accept(LSock) of
    {ok, Sock} ->
      spawn(?MODULE,process,[Sock]),
      server_loop(LSock);
    {error, Reason} ->
      exit({accept,Reason})
  end.

%% process current connection
process(Sock) ->
  Req = do_recv(Sock),
  Resp = "Hello, " ++ Req ++ "!",
  do_send(Sock,Resp),
  gen_tcp:close(Sock).

%% send a line of text to the socket
do_send(Sock,Msg) ->
  case gen_tcp:send(Sock, Msg) of
    ok -> ok;
    {error, Reason} -> exit(Reason)
  end.

%% receive data from the socket
do_recv(Sock) ->
  case gen_tcp:recv(Sock, 0) of
    {ok, Bin} -> binary_to_list(Bin);
    {error, closed} -> exit(closed);
    {error, Reason} -> exit(Reason)
  end.


client.rb
require 'socket'

client = TCPSocket.open('localhost', 8888)
client.send("hideto", 0)
puts client.readlines
client.close


Erlang服务器编译运行:
Eshell > c(server.erl).
Eshell > server:start().


Ruby客户端解释运行:
> ruby client.rb
Hello, hideto!


分享到:
评论
1 楼 yuky1327 2011-10-11  
ruby实现也太简单了~~~
我想服务端用erlang,客户端用android调用。应该实现的原理也是一样吧?楼主有空给下意见,谢谢。

相关推荐

    流行数据结构和算法的实现_Erlang_Ruby_下载.zip

    本资源包聚焦于两种编程语言——Erlang和Ruby,分别探讨如何实现常见且重要的数据结构和算法。 Erlang,一种函数式编程语言,以其并发处理能力和容错性闻名,常用于构建高可用性和分布式系统。在Erlang中,我们可以...

    Erlang中的socket编程简单例子

    本文将深入探讨Erlang中的TCP和UDP socket编程,以及如何实现简单的echo服务器和客户端。 首先,我们需要了解Erlang中处理TCP socket的gen_tcp模块。gen_tcp模块提供了用于创建TCP连接的接口,它允许我们监听端口、...

    基于Erlang的即时通讯系统的设计与实现_黄明.caj

    基于Erlang的即时通讯系统的设计与实现

    Erlang和RabbitMQ安装包

    Erlang和RabbitMQ是两个在分布式系统和消息队列领域中至关重要的技术。Erlang是一种函数式编程语言,以其并发性、容错性和热代码升级能力而闻名,而RabbitMQ则是基于Erlang构建的一个开源消息代理,用于实现应用程序...

    erlang与delphi多客户端通讯

    总结,"erlang与delphi多客户端通讯"这一主题涉及到Erlang和Delphi的网络编程,Socket通信,跨语言交互,以及特定端口(843)的使用。在实际项目中,开发者需要综合运用这些技术来构建稳定、高效且安全的多客户端...

    erlang和rabbitmq.zip

    【标题】"erlang和rabbitmq.zip" 涉及到的是两个关键技术:Erlang编程语言和RabbitMQ消息队列系统。Erlang是一种并发性极强、容错性出色的函数式编程语言,而RabbitMQ是基于Erlang开发的开源消息代理和队列服务器。 ...

    图书:Erlang和OTP实战

    《Erlang和OTP实战》是一本专注于Erlang编程语言和OTP(Open Telecom Platform)框架的专业书籍。这本书深入浅出地介绍了Erlang在分布式系统、并发处理以及高可用性设计中的应用,同时结合 OTP 提供了强大的工具和库...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...

    安装Erlang和RabbitMQ

    安装Erlang和RabbitMQ,linux系统下的哦,有红色字体标注!已踩坑

    Erlang官网下载过慢

    标签中提到了“Erlang Rabbit 异步通讯”,这意味着讨论的重点是Erlang如何与RabbitMQ结合实现异步通信。RabbitMQ是一个开源的消息代理,它遵循Advanced Message Queuing Protocol (AMQP)标准,提供了一种可靠、高效...

    erlang25.0 windows版本

    - **Elixir**:基于Erlang VM的现代编程语言,提供了更接近Ruby的语法,同时保留了Erlang的并发特性和稳定性。 总的来说,Erlang 25.0为Windows用户带来了一个更新的、优化的并发编程环境,无论是用于开发分布式...

    RabbitMQ3.9.13和ErLang24.2版本

    5. **语言和库更新**:Erlang的新版本通常会包含语言特性的增强和库的更新,这些改进可能会间接影响到RabbitMQ的性能和功能。 在安装这两个软件时,首先需要下载Erlang的erlang_24.2.exe文件,安装后才能运行...

    Erlang和RabbitMQ

    Erlang是一种由Ericsson公司开发的并发性、分布式和面向对象的编程语言,特别适用于构建高可靠性、容错性和可扩展性的系统。其设计灵感来源于函数式编程,使得Erlang在处理并发问题上表现出色,尤其适合在分布式计算...

    使用Erlang和Yaws开发REST式的服务

    在本文中,我们将探讨如何使用Erlang编程语言和Yaws Web服务器开发RESTful服务。Erlang是一种面向并发和分布式系统的语言,以其高可靠性而著称,而Yaws是由Claes Wikström用Erlang编写的高性能Web服务器,能够处理...

    erlang编程 Introducing Erlang

    "Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,旨在帮助初学者理解和掌握Erlang的核心概念和特性。 ### 1. 函数式编程基础 Erlang基于函数式编程范式,这意味着程序由纯函数构成,没有副作用。...

    erlang和RabbitMQ的安装包

    Erlang和RabbitMQ是两个在分布式系统和消息队列领域中至关重要的技术。Erlang是一种函数式编程语言,以其并发性、容错性和热代码升级能力而闻名,而RabbitMQ则是一个基于Erlang开发的消息中间件,广泛应用在微服务...

    php实现与erlang的二进制通讯实例解析

    一般来说网络通讯常用的方式有2种:文本通讯和二进制通讯。php与erlang之间实现文本通讯比较简单,这里就不做讨论,本文主要讨论的是php与erlang实现二进制通讯的实现方法。实现步骤如下: erlang端代码: 复制代码 ...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    erlang22最新下载包

    Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等领域广泛应用。Erlang22是Erlang的第22个主要版本,它包含了对语言特性的改进、性能优化以及一些新的库和工具。 在...

    rabbitMq和erlang安装包

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。

Global site tag (gtag.js) - Google Analytics