Erlang中文手册(Erldoc.com)  »  file  »  sendfile/2
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

file:sendfile/2

通过套接字端口 Socket 发送文件数据

用法:

sendfile(Filename, Socket) -> {ok, BytesSent} | {error, Reason}

内部实现:

%% sendfile/2
-spec sendfile(Filename, Socket) ->
   {'ok', non_neg_integer()} | {'error', inet:posix() | 
				closed | badarg | not_owner}
      when Filename :: name_all(),
	   Socket :: inet:socket().
sendfile(Filename, Sock)  ->
    case file:open(Filename, [read, raw, binary]) of
	{error, Reason} ->
	    {error, Reason};
	{ok, Fd} ->
	    Res = sendfile(Fd, Sock, 0, 0, []),
	    file:close(Fd),
	    Res
    end.

通过套接字端口 Socket 发送文件 Filename 的数据。如果发送成功,则返回 {ok, BytesSent},否则,返回 {error, Reason}

{ok, Socket} = gen_tcp:connect(?HOST, ?PORT, [binary, {packet, 0}]),
file:sendfile("/app/rebar.config", Socket).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9