仅仅是我还是Joe Armstrong编程Erlang书(第2版)第17章(使用套接字编程)中的喊叫服务器的代码根本不起作用。我能够从http://media.pragprog.com/titles/jaerlang2/code/jaerlang2-code.zip获得更新版本的代码......但它仍然不起作用。想知道是否有人成功实现了它,或者是否有正确工作代码的github链接。这确实阻碍了我对Erlang的学习。
非常感谢。
编辑: 我很抱歉没有在问题中加入更多细节。 如果他们已经阅读了这本书并成功实施了它,我不想打扰任何阅读长篇问题的人。
这就是我所做的:我在第14行修改了mp3_manager.erl代码:
Files = lib_files_find:files("/Volumes/joe/piano_concertos", "*.mp3", true),
到
{ok, CurrDir} = file:get_cwd(),
Dir = CurrDir ++ "/shoutCast_Music",
{ok, Files} = file:list_dir(Dir),
当我按照指示运行mp3_manager.erl start1函数时,转储到mp3data文件的内容为:
[{"Careful Where You Stand - Coldplay.mp3",{error,enoent}},
{"Parachutes - Coldplay.m4a",{error,enoent}},
{"See You Soon - Coldplay.mp3",{error,enoent}},
{"Shiver - Coldplay.mp3",{error,enoent}},
{"Trouble - Coldplay.mp3",{error,enoent}},
{"U.F.O. - Coldplay.mp3",{error,enoent}}].
我认为服务器无法正常处理这些错误。 我甚至试图将音乐文件更改为只有id3 v 1标签 我下载的音乐标签软件: http://ftp.is.co.za/mirror/ftp.gnome.org/binaries/win32/easytag/2.2/easytag-2.2.5-setup.exe
我使用的是Erlang 17版。
答案 0 :(得分:1)
我不熟悉本书中的示例,但{error,enoent}表示虚拟机正在尝试打开不存在的文件。
我会打印文件的完整路径以确保您的文件引用正确。您可以使用io执行此操作:fwrite(“〜p~n”,[FilePath])。