在完成了 AT 指令入門的學習之后,接下來就要使用 AT 指令進行 Socket 通信了。問題在于,之前 .NET 的 Socket 編程只需一臺電腦便可進行學習,服務(wù)器和客戶端都可以在本機運行,也可以分別運行在局域網(wǎng)上的兩臺電腦之上。而 NB-IOT 芯片的信號是直接發(fā)送到手機機站上的,個人電腦都是在局域網(wǎng)環(huán)境下運行的,沒有公網(wǎng) IP,手機信號發(fā)射塔不可能找到我們的個人電腦。也就是說,NB-IOT 開發(fā)板無法和我們的電腦直接通信,要進行 NB-IOT Socket 通信,必須準備一臺具有公網(wǎng) IP 的服務(wù)器。我個人買了三臺云服務(wù)器,有一臺是作機動使用,完全沒問題。到時上這門課的時候,專門在服務(wù)器上寫了個程序處理學生通過 Socket 發(fā)向服務(wù)器的信號應該可以解決問題。各位讀者只能自己購買一臺服務(wù)器學習了,現(xiàn)在騰訊阿里的服務(wù)器并不貴。
使用傳統(tǒng)方式進行開發(fā)需要在個人電腦寫好程序,然后發(fā)布成 DLL 文件,然后拷貝到服務(wù)器上運行,這個過程還是有點麻煩的。幸運的是 Visual Studio Code 現(xiàn)在可以進行遠程開發(fā)了,也就是直接編輯服務(wù)器上的文件,在服務(wù)器上發(fā)布程序并運行,相當強大啊!接下來講解如何使用 Visual Studio Code 進行遠程開發(fā)。
第一步當然是安裝 Visual Studio Code,請參考這篇文章。
然后安裝遠程開發(fā)插件 Remote Development。
首先打開插件面板。
在插件面板的搜索框中輸入remote development
,搜索到 Remote Development 插件。
點擊【Install】按鈕安裝插件。
請參考這篇文章。需要注意的是這篇文章當時安裝的是 2.1 版本?,F(xiàn)已出至 3.0,在指定版本時請改為 3.0。
接下來就可以連接服務(wù)器進行開發(fā)了。安裝完插件后,Visual Studio Code 窗體左下角會出現(xiàn)一個綠色圖標,點擊它,此時會在命令窗口彈出一系列選項,選擇其中的【Remote-SSH:Conntect to Host...】如下圖所示:
選擇【Conntect to Host...】后,命令行會變成下面這個樣子:
選擇其中的【Configure SSH Host...】,命令行變?yōu)椋?/p>
選擇其中的C:\Users\cg\.ssh\config
,注意:cg 是我這臺電腦的用戶名,你的電腦是其它用戶名。此時會在 C:\Users\cg\.ssh\
目錄下新建一個名為【config】的文件,并在 Visual Studio Code 中打開,輸入下圖所示文字:
Host 項的名字隨便起,它只是在 vs code 中顯示的名稱。
HostName 中輸入服務(wù)器的 IP 地址。
User 中輸入用戶名,我偷懶,直接用 root 用戶了,這樣做并不安全,你可以自行在服務(wù)器上建一個用戶來寫代碼。
寫完后保存,并關(guān)閉【config】文件。
接下來,重復上述步驟,再次點擊 Visual Studio Code 窗體左下角圖標,在命令行中選擇【Remote-SSH:Conntect to Host...】
可以看到剛才在【Host】項中填寫的名稱已經(jīng)出現(xiàn),選擇它。此時會彈出如下窗口讓你輸入密碼:
輸入密碼,按回車,連接服務(wù)器成功后,窗體會變成如下模樣:
此時,左下角綠色區(qū)域文字變?yōu)椤癝SH:機動服務(wù)器”,表示連接服務(wù)器成功。
接下來,單擊【Open folder】打開服務(wù)器上的一個文件夾進行開發(fā),在命令行中輸入【/var/www/】,如下圖所示(你可以選擇其它的文件夾放置項目文件):
此時還會讓你輸入一次密碼,輸入即可,打開完成后,界面變?yōu)椋?/p>
可以看到,在打開的文件夾中自動建立了一系列文件,用于個人電腦和服務(wù)器間的交互。
準備工作是做完了,接下來,我們可以開始第一個項目了。首先在 /var/www/ 文件夾下新建一個文件夾【FirstApp】。使用快捷鍵【Ctrl + ~】打開 TERMINAL,輸入如下命令建立文件夾并進入:
mkdir FirstAppcd FirstApp
運行如下命令創(chuàng)建第一個應用程序:
dotnet new console
在 Visual Studio Code 窗體在側(cè)的【Explorer】中打開【Projram.cs】文件,已經(jīng)寫好了一個 Hello World 代碼,可以直接運行。輸入如下命令:
dotnet run
運行命令后,顯示 Hello World!。我們的第一個遠程開發(fā)程序大功告成!
每次連接至服務(wù)器都要輸入密碼,顯然非常麻煩,我們配置一個 SSH 公鑰,將來可以不輸密碼直接進到服務(wù)器進行開發(fā)。
在個人電腦 Win10 操作系統(tǒng)的左下角【開始】按鈕上點鼠標右鍵,在彈出菜單中選擇【W(wǎng)indows PowerShell】項打開 PowerShell,輸入ssh-keygen
命令,并一路按回車,如下圖所示:
打開C:\Users\cg\.ssh
文件夾,可以看到生成了兩個新文件:id_rsa 和 id_rsa.pub。其中 id_rsa.pub 是公鑰,等下會用到。
使用 SSH 軟件登錄服務(wù)器,一般云供應商都會提供網(wǎng)頁連接方式,我使用的騰訊云就提供了網(wǎng)頁方式登錄服務(wù)器,輸入如下命令使用 vi 打開配置文件 sshd_config:
cd /etc/ssh/vi sshd_config
找到PubkeyAuthentication yes
項,如果前面有一個#
號,則去掉它(vi 使用i
鍵進入編輯狀態(tài))。先按 Esc 鍵,再按:
號讓 vi 進入命令狀態(tài),輸入wq
保存并退出 vi。
在服務(wù)器端輸入如下命令
cd ~/.ssh/ls
可以看到~/.ssh/
文件夾下有一個【authorized_keys】文件,我們需要將剛才生成的公鑰拷貝到這個文件中。我試過直接用記事本選中文字拷貝行不通,里面的特殊字符是無法選中的。需要先將公鑰上傳至服務(wù)器的引目錄中,然后追加。相信買了一臺服務(wù)器,上傳這樣的小事肯定是可以搞定的。如果實在搞不定,這里介紹一個比較方便的方法。
首先在個人電腦 Win10 上打開命令提示符,進入到剛才生成公鑰的C:\Users\cg\.ssh
目錄。
cd .sshdir
此時應當列出了我們剛才生成的公鑰。輸入如下命令(注意:如果你創(chuàng)建了另外的用戶,請將root替換掉):
scp id_rsa.pub root@<換為你服務(wù)器的IP地址>:~/.ssh/
接下來輸入服務(wù)器密碼,然后上傳成功。整個過程如下圖所示:
來到服務(wù)上的~/.ssh/
文件夾中ls
一下,id_rsa.pub 文件已經(jīng)拷貝了過去。接下來輸入如下命令將公鑰追加至【authorized_keys】文件:
cat id_rsa.pub >> authorized_keys
好,至此已經(jīng)大功告成,再次打開 Visual Studio Code,已經(jīng)不再需要輸入密碼,就可以登錄服務(wù)器了。如果你的筆記本也需要登錄服務(wù)器進行開發(fā),將 id_rsa 和 id_rsa.pub 這兩個文件拷貝至筆記本的C:\Users\cg\.ssh
文件夾即可。
聯(lián)系客服