現在只是學了一點C#的皮毛,所以接觸的較多的是用visual studio建立的控制台應用程序,因此,采用的是在vs平台下的控制台項目編寫的C#socket通信代碼。
首先要明白,雲服務器,不是多么難懂的東西,它本質上就是一台放在遠處,並且一直在運行的計算機。Socket通信既然可以實現兩台(甚至是多台)計算機之間的通信,那么當然也可以實現本地計算機與雲服務器的連接。這里,我是用的是騰訊雲提供的1元學生惠的windows系統的雲服務器,因為對於windows系統比較熟悉,所以采用的是windows系統。 其實,我也一直在想,是不是應該學習一下linux系統,看了看,實在是不知從何下手,如果有時間,真的想學一下linux。
socket通信的代碼,網上有很多,可以直接借鑒過來,只要懂一點程序,看懂代碼應該不難。重要的是要把代碼粘貼或者手敲到控制台中,這樣可以通過實際運行,一步步調試看懂代碼的具體含義,注意,在運行代碼時,要先運行服務器端代碼,再啟動客戶端代碼,順序不能顛倒。運行服務器端代碼,socket套接字會監聽服務器端的某端口(端口號自己設定),等待客戶端的連接,建立連接后,再通過send() receive()方法進行客戶端與服務器端的數據傳送,服務器、客戶端都可以收發數據。一般來說,都是通過字節數組的形式進行接收數據,這里就又要求解碼與編碼了。我用的是在服務器端先將數據轉換為string類型,再轉換為byte數組,發送到客戶端,客戶端接收字節數組后,再解碼成string類型,這樣不會出現格式錯誤、不能正常顯示的問題。
在學習代碼時,我很迷惑的是,為什么查到的所有代碼中,寫的地址都是127.0.0.1,我明白socket通信中,地址必須寫服務器端地址,這樣客戶端才知道是要連接哪個服務器。后來明白,127.0.0.1是代表系統的回送地址,也就是用於在本機測試,編寫的Socket通信代碼是否能成功連接並進行數據傳送,測試成功后,可以把服務器端應用程序(.exe文件 可在projects中找到)放到你想放的服務器中,但是注意地址不能再寫127.0.0.1 而是要寫成你服務器端的ip地址,雲服務器的ip地址,就是你購買雲服務器后告訴你的公網ip,例如,我的是139.199.22.*** 然后按之前的順序,先運行服務器端代碼,再運行客戶端代碼。
(在Visual Studio中,如何同時運行兩個或多個項目? 運行一個之后,在另一個想要運行的項目右擊項目名--->啟動新實例)