网络编程C/S模型怎样才能实现真正的聊天功能
學完socket編成后,就迫不及待地寫一個簡單的聊天程序,好在同學面前裝裝逼,畢竟外行看熱鬧。然而在自己的電腦上運行是毫無差錯,發送接收都沒有問題,然而將客戶端的exe文件打包后發送給其他電腦上運行時程序死在了connect函數上,始終無法連接到服務器,相信小白都有過這樣的經歷,為之氣憤不已,我也很氣憤。為什么連接不上呢?
電腦的網絡是通過連在路由器上實現上網的,一個路由器的覆蓋范圍小,也就是說一個路由器就是一個局域網,連接在不同路由器上的電腦是無法用socket直接進行通信的,一些牛逼的大佬說用打洞的技術可以實現通信,畢竟人家是大佬,咱們也只能說聲大佬牛逼之外還能說啥。廢話不都說,到底怎樣才能實現真正的聊天功能,我們需要連接到公網IP上就能實現通信。首先申請一個云服務器(先聲明一下,不是打廣告,不是打廣告),阿里云或者騰訊云都可以,學生申請很便宜,一個月10塊錢左右,申請到服務器后會給你一個公網IP和私有IP,使用這個公網IP。申請學生阿里云服務器請點擊
當申請到這個服務器后該如何運行我們自己寫的程序呢?這時就需要 xshell這個工具了,xshell可以遠程操作服務器,也可以操作虛擬機中的linux系統,操作方法和在本機操作一樣,都是用linux指令。怎么連就不說了,網上教程應有盡有。怎樣才能將寫好的程序上傳到服務器運行呢,連接上與服務器后,輸入 yum -y install lrzsz指令安裝一個插件,安裝完畢后,輸入 rz 指令便可將指定的文件上傳到當前路徑下,輸入 sz+文件名 便可將服務器上的文件下載到本機上。將源文件上傳成功后,編譯后運行起來即可。
在客戶端中,sockaddr_in結構體中的IP就填云服務器的公網IP,在確保電腦連網的狀態下啟動客戶端,便可連接云服務器,只要有網絡,不管你在哪都能實現通信。
如果你還是一個單片機愛好者,有了云服務器你可以使用ESP8266、4G通信模塊、GPRS模塊來實現遠距離通信,相信你的逼格頓時提升的就不止一點點了。
總結
以上是生活随笔為你收集整理的网络编程C/S模型怎样才能实现真正的聊天功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TensorFlow实战——深度学习训练
- 下一篇: 九、PyQt5 QLineEdit输入的