先前為了能把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 吧...

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

nobodyzxc 發表在 痞客邦 留言(0) 人氣()