在完成了 AT 指令入門的學習以後,接下來就要使用 AT 指令進行 Socket 通訊了。問題在於,以前 .NET 的 Socket 編程只需一臺電腦即可進行學習,服務器和客戶端均可以在本機運行,也能夠分別運行在局域網上的兩臺電腦之上。而 NB-IOT 芯片的信號是直接發送到手機機站上的,我的電腦都是在局域網環境下運行的,沒有公網 IP,手機信號發射塔不可能找到咱們的我的電腦。也就是說,NB-IOT 開發板沒法和咱們的電腦直接通訊,要進行 NB-IOT Socket 通訊,必須準備一臺具備公網 IP 的服務器。我我的買了三臺雲服務器,有一臺是做機動使用,徹底沒問題。到時上這門課的時候,專門在服務器上寫了個程序處理學生經過 Socket 發向服務器的信號應該能夠解決問題。各位讀者只能本身購買一臺服務器學習了,如今騰訊阿里的服務器並不貴。編程
使用傳統方式進行開發須要在我的電腦寫好程序,而後發佈成 DLL 文件,而後拷貝到服務器上運行,這個過程仍是有點麻煩的。幸運的是 Visual Studio Code 如今能夠進行遠程開發了,也就是直接編輯服務器上的文件,在服務器上發佈程序並運行,至關強大啊!接下來說解如何使用 Visual Studio Code 進行遠程開發。visual-studio-code
第一步固然是安裝 Visual Studio Code,請參考這篇文章。安全
而後安裝遠程開發插件 Remote Development。服務器
remote development
,搜索到 Remote Development 插件。請參考這篇文章。須要注意的是這篇文章當時安裝的是 2.1 版本。現已出至 3.0,在指定版本時請改成 3.0。ssh
接下來就能夠鏈接服務器進行開發了。安裝完插件後,Visual Studio Code 窗體左下角會出現一個綠色圖標,點擊它,此時會在命令窗口彈出一系列選項,選擇其中的【Remote-SSH:Conntect to Host...】以下圖所示:visual-studio
選擇【Conntect to Host...】後,命令行會變成下面這個樣子:學習
選擇其中的【Configure SSH Host...】,命令行變爲:操作系統
選擇其中的C:\Users\cg\.ssh\config
,注意:cg 是我這臺電腦的用戶名,你的電腦是其它用戶名。此時會在 C:\Users\cg\.ssh\
目錄下新建一個名爲【config】的文件,並在 Visual Studio Code 中打開,輸入下圖所示文字:.net
寫完後保存,並關閉【config】文件。插件
接下來,重複上述步驟,再次點擊 Visual Studio Code 窗體左下角圖標,在命令行中選擇【Remote-SSH:Conntect to Host...】
能夠看到剛纔在【Host】項中填寫的名稱已經出現,選擇它。此時會彈出以下窗口讓你輸入密碼:
輸入密碼,按回車,鏈接服務器成功後,窗體會變成以下模樣:
此時,左下角綠色區域文字變爲「SSH:機動服務器」,表示鏈接服務器成功。
接下來,單擊【Open folder】打開服務器上的一個文件夾進行開發,在命令行中輸入【/var/www/】,以下圖所示(你能夠選擇其它的文件夾放置項目文件):
此時還會讓你輸入一次密碼,輸入便可,打開完成後,界面變爲:
能夠看到,在打開的文件夾中自動創建了一系列文件,用於我的電腦和服務器間的交互。
準備工做是作完了,接下來,咱們能夠開始第一個項目了。首先在 /var/www/ 文件夾下新建一個文件夾【FirstApp】。使用快捷鍵【Ctrl + ~】打開 TERMINAL,輸入以下命令創建文件夾並進入:
mkdir FirstApp cd FirstApp
運行以下命令建立第一個應用程序:
dotnet new console
在 Visual Studio Code 窗體在側的【Explorer】中打開【Projram.cs】文件,已經寫好了一個 Hello World 代碼,能夠直接運行。輸入以下命令:
dotnet run
運行命令後,顯示 Hello World!。咱們的第一個遠程開發程序大功告成!
每次鏈接至服務器都要輸入密碼,顯然很是麻煩,咱們配置一個 SSH 公鑰,未來能夠不輸密碼直接進到服務器進行開發。
在我的電腦 Win10 操做系統的左下角【開始】按鈕上點鼠標右鍵,在彈出菜單中選擇【Windows PowerShell】項打開 PowerShell,輸入ssh-keygen
命令,並一路按回車,以下圖所示:
打開C:\Users\cg\.ssh
文件夾,能夠看到生成了兩個新文件:id_rsa 和 id_rsa.pub。其中 id_rsa.pub 是公鑰,等下會用到。
使用 SSH 軟件登陸服務器,通常雲供應商都會提供網頁鏈接方式,我使用的騰訊雲就提供了網頁方式登陸服務器,輸入以下命令使用 vi 打開配置文件 sshd_config:
cd /etc/ssh/ vi sshd_config
找到PubkeyAuthentication yes
項,若是前面有一個#
號,則去掉它(vi 使用i
鍵進入編輯狀態)。先按 Esc 鍵,再按:
號讓 vi 進入命令狀態,輸入wq
保存並退出 vi。
在服務器端輸入以下命令
cd ~/.ssh/ ls
能夠看到~/.ssh/
文件夾下有一個【authorized_keys】文件,咱們須要將剛纔生成的公鑰拷貝到這個文件中。我試過直接用記事本選中文字拷貝行不通,裏面的特殊字符是沒法選中的。須要先將公鑰上傳至服務器的引目錄中,而後追加。相信買了一臺服務器,上傳這樣的小事確定是能夠搞定的。若是實在搞不定,這裏介紹一個比較方便的方法。
首先在我的電腦 Win10 上打開命令提示符,進入到剛纔生成公鑰的C:\Users\cg\.ssh
目錄。
cd .ssh dir
此時應當列出了咱們剛纔生成的公鑰。輸入以下命令(注意:若是你建立了另外的用戶,請將root替換掉):
scp id_rsa.pub root@<換爲你服務器的IP地址>:~/.ssh/
接下來輸入服務器密碼,而後上傳成功。整個過程以下圖所示:
來到服務上的~/.ssh/
文件夾中ls
一下,id_rsa.pub 文件已經拷貝了過去。接下來輸入以下命令將公鑰追加至【authorized_keys】文件:
cat id_rsa.pub >> authorized_keys
好,至此已經大功告成,再次打開 Visual Studio Code,已經再也不須要輸入密碼,就能夠登陸服務器了。若是你的筆記本也須要登陸服務器進行開發,將 id_rsa 和 id_rsa.pub 這兩個文件拷貝至筆記本的C:\Users\cg\.ssh
文件夾便可。