[C/C++] 簡易 socket 雙人聊天程式

先前為了能把tetris連線,於是小小研究了下socket的用法,



終於,我的程式不再只是會用system() call 其他程式,而是真正的進入雙向的溝通。



一樣在linux的環境下開發,算是要寫連線程式前的暖身。



我覺得以下這篇看看,就能對socket有初步認識,也就能開始使用了  



Linux Socket Programming 淺談–教你的程式如何透過網路溝通



參考範例:socket 範例程式



參考範例,利用thread建立多執行序(相關用法見這篇)接收訊息,



再搭配ncurses(要裝才有喔,可以參考我這篇)寫出一個聊天室。(我把client sever寫一塊兒)



mycode: github上喔

效果:https://asciinema.org/a/cqri8tzq9qfd81g0djocabvmc  



compile 時你可能需要加的一些 flag : -lncurses -pthread -lsocket -lnsl



 



測試:

可以用crtl+alt+F(n)做到切換tty(n),例如要切到tty1就按crtl+alt+F1,用兩個tty做連線,



又或者用screen指令開兩個視窗進行連線測試 (linux 下)





screen指令有可能不是預設的,所以要另外裝,



$ sudo apt-get install screen  



有可能遇到伺服器掛掉,裝不起來,可以過一段時間再裝,或者爬文,換伺服器。(不行的話那用tty測吧)





screen指令的簡單操作:





ctrl+a然後w 查看現在開了那些screen

ctrl+a然後數字鍵 切換screen



 



2017/5/8 update: 我現在是都用 tmux 切 terminal 了啦 ...,要不就開兩個 terminal 吧...



下一步,寫出多人聊天室~~



留言

這個網誌中的熱門文章

[Antergos] disable touchpad

[Editor] 入坑 Atom => Markdown 轉 PDF