豫言源码浏览器 / Source Browser

浏览项目文件与源码

yuyan · 8 行 · 644 字节 · UTF-8
§
「名称」者『简易网页服务器』也。
「所有者」者『豫言』也。
「版本」者『0.1.0』也。
「类型」者「典」【「种类」者『可执行文件』也,「入口」者『入口』也,「文件名」者『yy简易网页服务器』也,】也。
「简介」者『提供简单的本地网页服务。』也。
「说明」者「典」【「汉语」者『包说明.汉语.md』也,「文言」者『包说明.文言.md』也,】也。
「:文言:各器各籍,所依明列。汉语:独立软件包,分类目录不参与导入解析。:」
「依赖」者「列」【『标准库』】也。
yuyan · 445 行 · 32978 字节 · UTF-8
§
「:
一个面向本地开发的简易静态网页服务器。

用法:yybs_简易网页服务器 【端口】
端口默认为八千,服务目录为程序启动时的当前工作目录。

当前仅处理 GET 与 HEAD;每个连接处理一个请求后关闭。
文件正文按字节串读取和发送,可提供文本与二进制资源。
:」

寻观「标准库」之书。
寻观「标准库」之「语言核心」之「异常」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「爻术」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「数据结构」之「可选值」之书。
寻观「标准库」之「数据结构」之「特殊字符」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「进程」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「标准库」之「网络」之「传输控制协议」之书。


「退出为整数」乃化「字符串」而化「整数」而「整数」也。
「退出为整数」者会「消息」而会「状态」而
    (「标准错误打印行」于「消息」;「退出」于「状态」;「发生事故」于「消息」)
也。

「端口文字有效」乃化「字符串」而「爻」也。
「端口文字有效」者会「文字」而
    「且」于
        (「非」于(「字符串相等吗」于「文字」于『』))
        于(「全部符合」授以「字符串」
            于(会「字符」而「是子字符串吗」于「字符」于『0123456789』)
            于(「获取字符」于「文字」))
也。

「取得端口」乃化(「列」于「字符串」)而「整数」也。
「取得端口」者会「参数们」而
    虑「端口」者鉴「参数们」而
        有「罄」则「八零零零」
        或有((「列」【「端口文字」】))则
            若「端口文字有效」于「端口文字」
            则「理解整数」于「端口文字」
            否则「退出为整数」于『端口必须是一至六五五三五之间的整数』于「二」
        或有「其他」则「退出为整数」于『用法:yybs_简易网页服务器 【端口】』于「二」
    而
    若「且」于(「大于」于「端口」于「零」)于(「小于」于「端口」于「六五五三六」)
    则「端口」
    否则「退出为整数」于『端口必须是一至六五五三五之间的整数』于「二」
也。


「截断于」乃化「字符串」而化「字符串」而「字符串」也。
「截断于」者会「分隔符」而会「内容」而
    鉴「串从左搜索单个」于「分隔符」于「内容」而
        有「可无」则「内容」
        或有(「可有」于「序数」)则「获取子字符串」于「零」于「序数」于「内容」
也。

「在闭区间」乃化「整数」而化「整数」而化「整数」而「爻」也。
「在闭区间」者会「值」而会「最小值」而会「最大值」而
    「且」于(「非」于(「小于」于「值」于「最小值」))于(「非」于(「大于」于「值」于「最大值」))
也。

「十六进制数字值」乃化「整数」而「整数」也。
「十六进制数字值」者会「字节」而
    若「在闭区间」于「字节」于「四八」于「五七」则「减」于「字节」于「四八」否则
    若「在闭区间」于「字节」于「六五」于「七零」则「加」于(「减」于「字节」于「六五」)于「一零」否则
    若「在闭区间」于「字节」于「九七」于「一零二」则「加」于(「减」于「字节」于「九七」)于「一零」否则
    「减」于「零」于「一」
也。

「网址百分号解码」乃化「字符串」而(「整数」合「字符串」)也。
「网址百分号解码」者会「内容」而
    虑「长度」者「字节长度」于「内容」而
    递归虑「继续解码」其化「整数」而(「整数」合「字符串」)者会「位置」而
        若「等于」于「位置」于「长度」
        则「零」与『』
        否则
            虑「当前字节」者「字符转整数」于「内容」于「位置」而
            若「等于」于「当前字节」于「三七」
            则(若「非」于(「小于」于(「加」于「位置」于「二」)于「长度」)
                则「四零零」与『网址中有不完整的百分号编码』
                否则
                    虑「高位」者「十六进制数字值」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))而
                    虑「低位」者「十六进制数字值」于(「字符转整数」于「内容」于(「加」于「位置」于「二」))而
                    若「或者」于(「小于」于「高位」于「零」)于(「小于」于「低位」于「零」)
                    则「四零零」与『网址中有无效的百分号编码』
                    否则
                        虑「解码字节」者「加」于(「乘」于「高位」于「一六」)于「低位」而
                        若「等于」于「解码字节」于「零」
                        则「四零零」与『网址路径不可含有零字节』
                        否则
                            虑「余下结果」者「继续解码」于(「加」于「位置」于「三」)而
                            若「等于」于(「余下结果」中「零」)于「零」
                            则「零」与((「字节转字符串」于「解码字节」)附(「余下结果」中「一」))
                            否则「余下结果」)
            否则
                虑「余下结果」者「继续解码」于(「加」于「位置」于「一」)而
                若「等于」于(「余下结果」中「零」)于「零」
                则「零」与((「字节转字符串」于「当前字节」)附(「余下结果」中「一」))
                否则「余下结果」
    而「继续解码」于「零」
也。

「是后续字节」乃化「整数」而「爻」也。
「是后续字节」者会「字节」而「在闭区间」于「字节」于「一二八」于「一九一」也。

「是合法八位统一码」乃化「字符串」而「爻」也。
「是合法八位统一码」者会「内容」而
    虑「长度」者「字节长度」于「内容」而
    递归虑「继续检查」其化「整数」而「爻」者会「位置」而
        若「等于」于「位置」于「长度」则「阳」否则
        虑「第一字节」者「字符转整数」于「内容」于「位置」而
        若「在闭区间」于「第一字节」于「一」于「一二七」
        则「继续检查」于(「加」于「位置」于「一」)
        否则(若「在闭区间」于「第一字节」于「一九四」于「二二三」
            则(若「大于」于(「加」于「位置」于「二」)于「长度」则「阴」否则
                若「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
                则「继续检查」于(「加」于「位置」于「二」)否则「阴」)
            否则(若「或者」于(「在闭区间」于「第一字节」于「二二五」于「二三六」)于(「在闭区间」于「第一字节」于「二三八」于「二三九」)
                则(若「大于」于(「加」于「位置」于「三」)于「长度」则「阴」否则
                    若「且」于
                        (「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「一」)))
                        于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」)))
                    则「继续检查」于(「加」于「位置」于「三」)否则「阴」)
                否则(若「等于」于「第一字节」于「二二四」
                    则(若「大于」于(「加」于「位置」于「三」)于「长度」则「阴」否则
                        若「且」于
                            (「在闭区间」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))于「一六零」于「一九一」)
                            于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」)))
                        则「继续检查」于(「加」于「位置」于「三」)否则「阴」)
                    否则(若「等于」于「第一字节」于「二三七」
                        则(若「大于」于(「加」于「位置」于「三」)于「长度」则「阴」否则
                            若「且」于
                                (「在闭区间」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))于「一二八」于「一五九」)
                                于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」)))
                            则「继续检查」于(「加」于「位置」于「三」)否则「阴」)
                        否则(若「在闭区间」于「第一字节」于「二四一」于「二四三」
                            则(若「大于」于(「加」于「位置」于「四」)于「长度」则「阴」否则
                                若「且」于
                                    (「且」于
                                        (「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「一」)))
                                        于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」))))
                                    于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「三」)))
                                则「继续检查」于(「加」于「位置」于「四」)否则「阴」)
                            否则(若「等于」于「第一字节」于「二四零」
                                则(若「大于」于(「加」于「位置」于「四」)于「长度」则「阴」否则
                                    若「且」于
                                        (「且」于
                                            (「在闭区间」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))于「一四四」于「一九一」)
                                            于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」))))
                                        于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「三」)))
                                    则「继续检查」于(「加」于「位置」于「四」)否则「阴」)
                                否则(若「等于」于「第一字节」于「二四四」
                                    则(若「大于」于(「加」于「位置」于「四」)于「长度」则「阴」否则
                                        若「且」于
                                            (「且」于
                                                (「在闭区间」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))于「一二八」于「一四三」)
                                                于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」))))
                                            于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「三」)))
                                        则「继续检查」于(「加」于「位置」于「四」)否则「阴」)
                                    否则「阴」)))))))
    而「继续检查」于「零」
也。

「请求目标转相对路径」乃化「字符串」而「字符串」也。
「请求目标转相对路径」者会「目标」而
    若「字符串相等吗」于「目标」于『/』
    则『』
    否则(若「串开头是它吗」于『/』于「目标」
        则「去除串开头」于『/』于「目标」
        否则「目标」)
也。

「请求目标安全」乃化「字符串」而「爻」也。
「请求目标安全」者会「目标」而
    「且」于
        (「且」于
            (「串开头是它吗」于『/』于「目标」)
            于(「非」于(「是子字符串吗」于『..』于「目标」)))
        于(「非」于(「是子字符串吗」于『\』于「目标」))
也。


「转义网页文字」乃化「字符串」而「字符串」也。
「转义网页文字」者会「文字」而
    「串查找替换」于
        (「串查找替换」于
            (「串查找替换」于
                (「串查找替换」于「文字」于『&』于『&』)
                于『<』于『&lt;』)
            于『>』于『&gt;』)
        于『"』于『&quot;』
也。

「资源种类」乃化「字符串」而「字符串」也。
「资源种类」者会「文件名」而
    若「串结尾是它吗」于『.html』于「文件名」则『text/html; charset=utf-8』否则
    若「串结尾是它吗」于『.htm』于「文件名」则『text/html; charset=utf-8』否则
    若「串结尾是它吗」于『.css』于「文件名」则『text/css; charset=utf-8』否则
    若「串结尾是它吗」于『.js』于「文件名」则『text/javascript; charset=utf-8』否则
    若「串结尾是它吗」于『.json』于「文件名」则『application/json; charset=utf-8』否则
    若「串结尾是它吗」于『.svg』于「文件名」则『image/svg+xml』否则
    若「串结尾是它吗」于『.xml』于「文件名」则『application/xml; charset=utf-8』否则
    若「串结尾是它吗」于『.txt』于「文件名」则『text/plain; charset=utf-8』否则
    若「串结尾是它吗」于『.md』于「文件名」则『text/plain; charset=utf-8』否则
    『application/octet-stream』
也。


「写完整」乃化「传输连接」而化「字符串」而「有」也。
「写完整」者会「连接值」而会「内容」而
    递归虑「继续写」其化「整数」而「有」者会「位置」而
        若「等于」于「位置」于(「字节长度」于「内容」)
        则「元」
        否则(鉴「从字节序数写入」于「连接值」于「内容」于「位置」而
            有「操作成功」于「写入数」则
                若「大于」于「写入数」于「零」
                则「继续写」于(「加」于「位置」于「写入数」)
                否则「元」
            或有「暂需等待」于「写入数」则(
                鉴「等待可写」于「连接值」于「五零零零」而
                    有「操作成功」于「事件」则
                        若「等于」于「事件」于「零」则「元」否则「继续写」于「位置」
                    或有「暂需等待」于「事件」则「元」
                    或有「连接已关闭」则「元」
                    或有「操作失败」于「状态」则「元」)
            或有「连接已关闭」则「元」
            或有「操作失败」于「状态」则「元」)
    而「继续写」于「零」
也。

「写完整字节串」乃化「传输连接」而化「字节串」而「有」也。
「写完整字节串」者会「连接值」而会「内容」而
    递归虑「继续写」其化「整数」而「有」者会「位置」而
        若「等于」于「位置」于(「字节串长度」于「内容」)
        则「元」
        否则(鉴「从字节序数写入字节串」于「连接值」于「内容」于「位置」而
            有「操作成功」于「写入数」则
                若「大于」于「写入数」于「零」
                则「继续写」于(「加」于「位置」于「写入数」)
                否则「元」
            或有「暂需等待」于「写入数」则(
                鉴「等待可写」于「连接值」于「五零零零」而
                    有「操作成功」于「事件」则
                        若「等于」于「事件」于「零」则「元」否则「继续写」于「位置」
                    或有「暂需等待」于「事件」则「元」
                    或有「连接已关闭」则「元」
                    或有「操作失败」于「状态」则「元」)
            或有「连接已关闭」则「元」
            或有「操作失败」于「状态」则「元」)
    而「继续写」于「零」
也。

「编制响应头」乃化「整数」而化「字符串」而化「字符串」而化「整数」而「字符串」也。
「编制响应头」者会「状态码」而会「原因」而会「种类」而会「正文长度」而
    『HTTP/1.1 』附(「整数表示」于「状态码」)附『 』附「原因」附「回车换行」
        附『Server: yuyan-simple-http-server』附「回车换行」
        附『Content-Type: 』附「种类」附「回车换行」
        附『Content-Length: 』附(「整数表示」于「正文长度」)附「回车换行」
        附『Connection: close』附「回车换行」
        附「回车换行」
也。

「发送字节串响应」乃化「传输连接」而化「整数」而化「字符串」而化「字符串」而化「字节串」而化「爻」而「有」也。
「发送字节串响应」者会「连接值」而会「状态码」而会「原因」而会「种类」而会「正文」而会「仅标头」而(
    「写完整」于「连接值」于(「编制响应头」于「状态码」于「原因」于「种类」于(「字节串长度」于「正文」));
    若「仅标头」则「元」否则「写完整字节串」于「连接值」于「正文」
)也。

「发送响应」乃化「传输连接」而化「整数」而化「字符串」而化「字符串」而化「字符串」而化「爻」而「有」也。
「发送响应」者会「连接值」而会「状态码」而会「原因」而会「种类」而会「正文」而会「仅标头」而
    「发送字节串响应」于「连接值」于「状态码」于「原因」于「种类」于(「字符串转字节串」于「正文」)于「仅标头」
也。

「失败原因」乃化「整数」而「字符串」也。
「失败原因」者会「状态码」而
    若「等于」于「状态码」于「四零八」则『Request Timeout』否则
    若「等于」于「状态码」于「四一三」则『Content Too Large』否则
    『Bad Request』
也。


「目录条目网页」乃化「字符串」而化「字符串」而化(「列」于「字符串」)而「字符串」也。
「目录条目网页」者会「目录路径」而会「请求目标」而会「条目们」而
    鉴「条目们」而
        有「罄」则『』
        或有(「缀」于「名称」于「余下」)则
            若「或者」于(「字符串相等吗」于「名称」于『.』)于(「字符串相等吗」于「名称」于『..』)
            则「目录条目网页」于「目录路径」于「请求目标」于「余下」
            否则
                虑「文件路径」者「路径合并」于「目录路径」于「名称」而
                虑「是目录」者「路径是文件夹」于「文件路径」而
                虑「显示名」者若「是目录」则「名称」附『/』否则「名称」而
                虑「目标前缀」者若「串结尾是它吗」于『/』于「请求目标」则「请求目标」否则「请求目标」附『/』而
                『<li><a href="』附(「转义网页文字」于「目标前缀」)附(「转义网页文字」于「显示名」)附『">』
                    附(「转义网页文字」于「显示名」)附『</a></li>』
                    附(「目录条目网页」于「目录路径」于「请求目标」于「余下」)
也。

「编制目录网页」乃化「字符串」而化「字符串」而「字符串」也。
「编制目录网页」者会「目录路径」而会「请求目标」而
    虑「安全标题」者「转义网页文字」于「请求目标」而
    『<!doctype html><html><head><meta charset="utf-8"><title>目录 』附「安全标题」
        附『</title></head><body><h1>目录 』附「安全标题」附『</h1><ul>』
        附(「目录条目网页」于「目录路径」于「请求目标」于(「读文件夹」于「目录路径」))
        附『</ul></body></html>』
也。


「提供已解码路径」乃化「传输连接」而化「字符串」而化「字符串」而化「字符串」而「有」也。
「提供已解码路径」者会「连接值」而会「根目录」而会「方法」而会「请求目标」而
    虑「仅标头」者「字符串相等吗」于「方法」于『HEAD』而
    若「非」于(「请求目标安全」于「请求目标」)
    则「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『无效请求目标』于「仅标头」
    否则
        虑「相对路径」者「请求目标转相对路径」于「请求目标」而
        虑「实际路径」者「路径合并」于「根目录」于「相对路径」而
        若「非」于(「路径存在」于「实际路径」)
        则「发送响应」于「连接值」于「四零四」于『Not Found』于『text/plain; charset=utf-8』于『没有找到请求的资源』于「仅标头」
        否则(若「路径是文件夹」于「实际路径」
            则
                虑「首页路径」者「路径合并」于「实际路径」于『index.html』而
                若「路径存在」于「首页路径」
                则虑「正文」者「读文件字节串」于「首页路径」而
                    「发送字节串响应」于「连接值」于「二零零」于『OK』于『text/html; charset=utf-8』于「正文」于「仅标头」
                否则虑「正文」者「编制目录网页」于「实际路径」于(「截断于」于『?』于「请求目标」)而
                    「发送响应」于「连接值」于「二零零」于『OK』于『text/html; charset=utf-8』于「正文」于「仅标头」
            否则(若「路径是普通文件」于「实际路径」
                则虑「正文」者「读文件字节串」于「实际路径」而
                    「发送字节串响应」于「连接值」于「二零零」于『OK』于(「资源种类」于「实际路径」)于「正文」于「仅标头」
                否则「发送响应」于「连接值」于「四零四」于『Not Found』于『text/plain; charset=utf-8』于『没有找到请求的资源』于「仅标头」))
也。

「提供路径」乃化「传输连接」而化「字符串」而化「字符串」而化「字符串」而「有」也。
「提供路径」者会「连接值」而会「根目录」而会「方法」而会「原请求目标」而
    虑「仅标头」者「字符串相等吗」于「方法」于『HEAD』而
    虑「无查询」者「截断于」于『?』于「原请求目标」而
    虑「无片段」者「截断于」于『#』于「无查询」而
    虑「解码结果」者「网址百分号解码」于「无片段」而
    若「非」于(「等于」于(「解码结果」中「零」)于「零」)
    则「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于(「解码结果」中「一」)于「仅标头」
    否则
        虑「请求目标」者「解码结果」中「一」而
        若「非」于(「是合法八位统一码」于「请求目标」)
        则「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『网址路径不是合法的 UTF-8』于「仅标头」
        否则「提供已解码路径」于「连接值」于「根目录」于「方法」于「请求目标」
也。


「取请求行」乃化「字符串」而「字符串」也。
「取请求行」者会「请求」而「截断于」于「回车换行」于「请求」也。

「处理请求文字」乃化「传输连接」而化「字符串」而化「字符串」而「有」也。
「处理请求文字」者会「连接值」而会「根目录」而会「请求」而
    鉴「元素分隔」授以「字符串」于(会「字符」而「字符串相等吗」于「字符」于『 』)于(「获取字符」于(「取请求行」于「请求」))而
        有((「列」【「方法字符」,「目标字符」,「版本字符」】))则(
            虑「方法」者「通字符转串」于「方法字符」而
            虑「目标」者「通字符转串」于「目标字符」而
            虑「版本」者「通字符转串」于「版本字符」而
            若「非」于(「串开头是它吗」于『HTTP/』于「版本」)
            则「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『无效协议版本』于「阴」
            否则(若「或者」于(「字符串相等吗」于「方法」于『GET』)于(「字符串相等吗」于「方法」于『HEAD』)
                则虑「无」者「打印行」于(「方法」附『 』附「目标」)而「提供路径」于「连接值」于「根目录」于「方法」于「目标」
                否则「发送响应」于「连接值」于「四零五」于『Method Not Allowed』于『text/plain; charset=utf-8』于『仅支持 GET 与 HEAD』于「阴」)
            )
        或有「其他」则「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『无效请求行』于「阴」
也。


「读取请求头」乃化「传输连接」而(「整数」合「字符串」)也。
「读取请求头」者会「连接值」而
    递归虑「继续读」其化「字符串」而(「整数」合「字符串」)者会「已有」而
        若「是子字符串吗」于(「回车换行」附「回车换行」)于「已有」
        则「零」与「已有」
        否则(若「大于」于(「字节长度」于「已有」)于「六五五三六」
            则「四一三」与『请求头过大』
            否则(鉴「读取」于「连接值」于「四零九六」而
                有「操作成功」于「新内容」则「继续读」于(「已有」附「新内容」)
                或有「暂需等待」于「新内容」则(
                    鉴「等待可读」于「连接值」于「五零零零」而
                        有「操作成功」于「事件」则
                            若「等于」于「事件」于「零」
                            则「四零八」与『读取请求超时』
                            否则「继续读」于「已有」
                        或有「暂需等待」于「事件」则「四零八」与『读取请求超时』
                        或有「连接已关闭」则「四零零」与『连接提前关闭』
                        或有「操作失败」于「状态」则「四零零」与(『等待请求失败:』附(「错误消息」于「状态」)))
                或有「连接已关闭」则「四零零」与『连接提前关闭』
                或有「操作失败」于「状态」则「四零零」与(『读取请求失败:』附(「错误消息」于「状态」))))
    而「继续读」于『』
也。

「处理连接」乃化「传输连接」而化「字符串」而「有」也。
「处理连接」者会「连接值」而会「根目录」而
    鉴「读取请求头」于「连接值」而
        有(「状态码」与「内容」)则
            若「等于」于「状态码」于「零」
            则「处理请求文字」于「连接值」于「根目录」于「内容」
            否则「发送响应」于「连接值」于「状态码」于(「失败原因」于「状态码」)于『text/plain; charset=utf-8』于「内容」于「阴」
也。


「运行服务」乃化「传输连接」而化「字符串」而「有」也。
「运行服务」者会「监听连接」而会「根目录」而
    递归虑「继续服务」其化「有」而「有」者会「无」而
        鉴「接受」于「监听连接」而
            有「操作成功」于「连接值」则(
                「处理连接」于「连接值」于「根目录」;
                「关闭」于「连接值」;
                「继续服务」于「元」)
            或有「暂需等待」于「连接值」则(
                鉴「等待可读」于「监听连接」于(「减」于「零」于「一」)而
                    有「操作成功」于「事件」则「继续服务」于「元」
                    或有「暂需等待」于「事件」则「继续服务」于「元」
                    或有「连接已关闭」则「标准错误打印行」于『监听连接已经关闭』
                    或有「操作失败」于「状态」则「标准错误打印行」于(『等待连接失败:』附(「错误消息」于「状态」)))
            或有「连接已关闭」则「标准错误打印行」于『监听连接已经关闭』
            或有「操作失败」于「状态」则「标准错误打印行」于(『接受连接失败:』附(「错误消息」于「状态」))
    而「继续服务」于「元」
也。


「:文言:终端预览,限于本机。汉语:保留原来的监听行为,新增 --本机 供管理终端限制监听地址。:」
虑「参数」者「获取参数」于「元」而
虑「服务选项」者鉴「参数」而
    有(「缀」于『--本机』于「余」)则『127.0.0.1』与「余」
    或有「其他」则『0.0.0.0』与「其他」而
虑「端口」者「取得端口」于(「服务选项」中「一」)而
虑「根目录」者「获取当前路径」于「元」而
鉴「监听」于(「服务选项」中「零」)于「端口」于「一二八」而
    有「操作成功」于「监听连接」则(
        「打印行」于(『正在提供目录:』附「根目录」);
        「打印行」于(『请访问:http://127.0.0.1:』附(「整数表示」于「端口」)附『/』);
        「运行服务」于「监听连接」于「根目录」)
    「:文言:不能听,则以败告。汉语:启动失败返回非零状态,使管理终端和自动化能够识别失败。:」
    或有「暂需等待」于「监听连接」则(「标准错误打印行」于『建立监听时意外要求等待』;「退出」于「一」)
    或有「连接已关闭」则(「标准错误打印行」于『建立监听时连接已经关闭』;「退出」于「一」)
    或有「操作失败」于「状态」则(「标准错误打印行」于(『监听失败:』附(「错误消息」于「状态」));「退出」于「一」)。