Erlang与Flash的Socket通讯-01

来源:互联网 发布:淘宝仓管岗位职责 编辑:程序博客网 时间:2024/06/10 04:18

Erlang端的代码:

-module(server).-export([start/1, server_proc/1]).start (Port) ->    {ok, Sock} = gen_tcp:listen(Port, [binary, {packet, 2}, {active, false}]),    server_loop(Sock).server_loop (LSock) ->    {ok, Sock} = gen_tcp:accept(LSock),    spawn(?MODULE, server_proc, [Sock]),    server_loop(LSock).server_proc (Sock) ->    Request = case gen_tcp:recv(Sock, 0) of        {ok, ReqBin}    ->            binary_to_list(ReqBin);        {error, closed} ->            io:format("Client closed~n"), exit(closed);        {error, Reason} ->            io:format("Error: ~s~n", Reason), exit(Reason)    end,    io:format("Received: ~p~n", [Request]),    Response = "Done!",    gen_tcp:send(Sock, Response),    server_proc(Sock).

Flash端实验代码:

package{    import flash.net.Socket;    import flash.display.Sprite;    import flash.events.ProgressEvent;    public class Main extends Sprite    {        private var sock:Socket;        public function Main ()        {            sock = new Socket();            sock.addEventListener(ProgressEvent.SOCKET_DATA, function (event:ProgressEvent):void            {                trace(sock.readUTF());                sock.close();            });            sock.connect("localhost", 10086);            sock.writeUTF("Hello World!");            sock.flush();        }    }}
0 0
原创粉丝点击