Erlang和Ruby的Socket通讯
生活随笔
收集整理的这篇文章主要介绍了
Erlang和Ruby的Socket通讯
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
server.erl
Java代码-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
Java代码require 'socket' client = TCPSocket.open('localhost', 8888) client.send("hideto", 0) puts client.readlines client.close
Erlang服务器编译运行:
Java代码Eshell > c(server.erl). Eshell > server:start().
Ruby客户端解释运行:
Java代码> ruby client.rb Hello, hideto!
Java代码
client.rb
Java代码
Erlang服务器编译运行:
Java代码
Ruby客户端解释运行:
Java代码
转载于:https://www.cnblogs.com/orez88/articles/1800787.html
总结
以上是生活随笔为你收集整理的Erlang和Ruby的Socket通讯的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: ASP超级链接和HTML函数正则表达式
- 下一篇: 过简单的研究生生活