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(); } } }