<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                代理服務器的功能是接收數據,通過parser解析出JSON報文給handler進行處理,我們可以基于6.4的tcp\_server.c來完成;但這里我們選擇用c++來實現,大同小異,大家可以移植cJSON進來,然后基于tcp\_server.c完成這個功能。 ### c++的實現代碼在tcp\_task.cpp中: ![](https://img.kancloud.cn/08/af/08af9b76f733de46822040a07da7c02a_832x488.png =700x) ### 定義了兩個類:tcp\_task和json\_task,繼承關系:linker -> tcp\_task -> json\_task,然后json\_task重寫packet和handle,實際上packet就是parser;主函數通過json\_task完成TCP服務器的搭建: ![](https://img.kancloud.cn/82/1b/821b961d2eaf38ad18349f5bd909bdfa_436x242.png =400x) ### 當我們收到數據時,會進入到json\_task的packet中,因此我們需要在packet中對流數據進行解析。 ![](https://img.kancloud.cn/a4/34/a434aa294f30abbb319f91457b90fd1e_832x478.png =700x) ### 這段代碼完成流數據截取JSON報文的邏輯,接著到達handle中: ![](https://img.kancloud.cn/ab/30/ab3072d947f55b5c0cbf71a1b386d945_832x610.png =700x) ### JSON報文包含did和behavior,behavior取值是register和send;假設我們有一臺設備(TCP客戶端)連接進來,首先需要進行register然后才能向已經注冊的設備發送數據報文。 ### 編譯:直接 make 即可,編譯完成輸出文件cpp\_server: ![](https://img.kancloud.cn/14/ee/14eee36d42cc74591f7e89df516a413c_832x236.png) ### 運行cpp\_server和c\_client: ![](https://img.kancloud.cn/45/23/452356c191d7d52325358f279f278ba7_704x360.png =600x) ### * 客戶端發送:{"did":"123456","behavior":"register"} * 服務端回復:{"ack":"ok"} ### 我們可以在手機上下載一個TCP的終端,然后嘗試連接到這個服務器上發送數據;需要注意的是,手機需要和終端保持在同一個局域網下,查看終端的ip可以用ifconfig: ![](https://img.kancloud.cn/ec/97/ec974e6010f1773f4e4a0948f069b978_832x168.png =832x) ### 比如我查到的IP是192.168.10.228 ### 因此手機APP連接TCP也需要指定這個IP地址: ![](https://img.kancloud.cn/c2/a1/c2a17b897775ab7ee9a3c0e1e80d0a03_620x882.png =500x) ### 手機發送: {"did":"333333","behavior":"send","target":"123456","message":"Hi, my did is 333333"} ### 這個JSON報文會被服務器解析,由于behavior是send,目標target是123456,因此會把message也就是:"Hi, my did is 333333"轉發出去;同時服務器回復手機APP響應信息ack。 ### 另一個終端會收到來自服務器轉發的數據如下: ![](https://img.kancloud.cn/9e/f3/9ef3351332e644a2482b2a8c0508ac62_804x474.png =700x)
                  <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>

                              哎呀哎呀视频在线观看