<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 要求 編寫一個 TCP 時間服務器 服務器監聽一個端口,以獲取一些TCP連接,這個端口會經由第一個命令行參數傳遞給程序。針對每一個 TCP 連接,都必須寫入當前的日期和24小時制的時間,如下格式: ~~~ "YYYY-MM-DD hh:mm" ~~~ 然后緊接著是一個換行符。 月份、日、小時和分鐘必須用零填充成為固定的兩位數: ~~~ "2013-07-06 17:42" ~~~ ## 提示 這次練習中,將會創建一個 TCP 服務器。這里將不會涉及到任何 HTTP 的事情,因此只需使用 net 這個 Node 核心模塊就可以了。它包含了所有的基礎網絡功能。 net 模塊擁有一個名叫 net.createServer() 的方法,它會接收一個回調函數。和 Node 中其他的回調函數不同,createServer() 所用的回調函數將會被調用多次。服務器每收到一個 TCP 連接,都會調用一次這個回調函數。這個回調函數有如下特征: ~~~ function callback (socket) { /* ... */ } ~~~ net.createServer() 也會返回一個 TCP 服務器的實例,必須調用 server.listen(portNumber) 來讓服務器開始監聽一個特定的端口。 一個典型的 Node TCP 服務器將會如下所示: ~~~ var net = require('net') var server = net.createServer(function (socket) { // socket 處理邏輯 }) server.listen(8000) ~~~ [net模塊API文檔](https://nodejs.org/api/net.html) 記住,請一定監聽由第一個命令行參數指定的端口。 socket 對象包含了很多關于各個連接的信息(meta-data),但是它也同時是一個 Node 雙工流(duplex Stream),所以,它即可以讀,也可以寫。對這個練習來說,只需要對socket 寫數據和關閉它就可以了。 使用 socket.write(data) 可以寫數據到 socket 中,用 socket.end() 可以關閉一個 socket。另外, .end() 方法也可以接收一個數據對象作為參數,因此,可簡單地使用 socket.end(data) 來完成寫數據和關閉兩個操作。 ## 代碼 方法一: ~~~ var net = require('net'); net.createServer(function(socket){ var date= new Date(); socket.end(date.toLocaleDateString()); }).listen(process.argv[2]); ~~~ 方法二: ~~~ var net = require('net') function zeroFill(i) { return (i 10 ? '0' : '') + i } function now () { var d = new Date() return d.getFullYear() + '-' + zeroFill(d.getMonth() + 1) + '-' + zeroFill(d.getDate()) + ' ' + zeroFill(d.getHours()) + ':' + zeroFill(d.getMinutes()) } var server = net.createServer(function (socket) { socket.end(now() + '\n') }) server.listen(Number(process.argv[2])) ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看