首先我獲得了兩份分別是server乡摹,client的socket代碼。用的語言是c。
我首先嘗試用vm下debian虛擬機與ubuntu虛擬機通信套像,以debian11作為服務器端,ubuntu作為客戶端進行通信终息。
在兩臺虛擬機上下載搭建好c環(huán)境后夺巩,開始了第一輪的編譯運行。
將代碼初次輸入編譯后發(fā)現(xiàn)雙方運行起來都沒有反應周崭,連接沒有成功柳譬。
因為考慮到對debian系統(tǒng)的不熟悉,我考慮到是也許是防火墻端口號沒有放行的原因续镇,我嘗試在Debian下先進行防火墻的配置美澳,誰知道這個過程中一直磕磕絆絆,嘗試了很多命令跟解決辦法摸航,到最后也沒有結果制跟。
? debian下裝了iptables配置防火墻時,輸入開放端口指令都會出現(xiàn)unknown option或者是未找到該指令的錯誤酱虎,崩潰的是在這個過程中我的debian卡死了兩次雨膨,真是很搞心態(tài)。
后來debian第二次卡死就放棄了用debian作為服務器端逢净,把ubuntu完整克隆了一臺哥放,決定用ubuntu的克隆機作為服務器端繼續(xù)嘗試歼指!我的vm下 debian真的太蛋疼了,輸啥啥不行甥雕!
因為克隆下來的機子完全與原機相同踩身,所以搭建c環(huán)境的步驟也省下了。甚至能在克隆機上上傳git
第一步先把兩邊的代碼準備好社露,
因為是克隆挟阻,所以我的克隆機上有客戶端跟服務器端的代碼。
第二步進行防火墻的配置峭弟,雙方都放開實驗需要的5005端口附鸽。
第三步開始運行雙方的代碼。
首先在服務器端先運行服務器端程序瞒瘸,讓服務器開啟監(jiān)聽模式坷备。
輸入后馬上回顯發(fā)送數(shù)據(jù)與服務器端回應的數(shù)據(jù)省撑。
首先顯示原機的ip號,表示連接成功俯在,最后每次接受成功后發(fā)送ok竟秫。
最后的iret是recv函數(shù)的返回值,為0表示客戶端已經(jīng)發(fā)送完所有數(shù)據(jù)跷乐,并關閉了鏈接肥败。
總體上運行成功。
-------------------------------------------------------------------------------------------------------
主要學習資源來源:
(19條消息) socket綁定的ip為INADDR_ANY 的意義_lyz_cs的博客-CSDN博客
先讓網(wǎng)絡通信的程序跑起來_嗶哩嗶哩_bilibili
TCP通信的客戶端代碼實現(xiàn)_嗶哩嗶哩_bilibili
還有書籍參考:linuxC函數(shù)庫參考手冊
對以上作者表示感謝愕提。