2025/04 小記 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 4月 15, 2025 又快迷失了自己,隨著歲月流逝,沒有與時俱進,感覺也正在被時代淘汰。在這間公司也待得夠久了,人一個個走,不禁也焦慮了起來。最近開始學著採譜,老師開了 Yoasobi 的 夜に駆ける 給我。很久,很久沒有聽一首個聽到哭了。離理想中的生活好遠,理想中的自己好遠,雖然不能百分之百講明自己要什麼,但現在的生活並不是我想要的。 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
[C/C++] 多人聊天室 3月 04, 2016 程式碼趨近完成,寒假的課題終於也算是接近告一個段落了。 多人的server其實也跟兩人版的差不多,不過就是要注意client資料的宣告,可以預留一個位置做拒絕用,當人數已達上限時,多一個位置,把人accept進來後sign給他人數已滿的訊息,繼而close掉。 這次在寫的過程中,一個bug de了很久,就是為client啟動執行緒時把參數傳入create_thread時,由於傳的是i的位址(我用迴圈跑客戶資料陣列),在傳進去被存為另一變數前,父程序的i已經又跑完迴圈i++了,所以傳進去的值會比原本多一,於是recv接到的是fd==-1的client,結果就發生錯誤喽。這bug我de了好幾個小時才發現,資質駑鈍啊~~~ 原先看這篇是教傳址: http://pthreadpthread.blogspot.tw/2012/03/pthread.html 後來這篇有另外教傳值: http://pccts.blogspot.tw/2007/11/pthreadcreate.html (*真是讓我@@) 所以歸納一下本篇和上篇的差異:要把程式分成兩部分伺服端和客戶端,客戶端沒甚麼不同,伺服端多了一個重點就是多執行緒的管理,開啟與關閉,關於伺服端接受資料也可以用select接,取代執行緒的建立,不過我還是偏好執行緒,因為select好像要一直跑迴圈,我怕造成負擔。 pthread_create()建立執行緒 pthread_exit()用於該執行緒內 將線程結束(如果用exit()會造成整個程式結束) pthread_cancel()將指定執行緒結束 //欲結束執行緒內加這句 pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL ); 設置狀態 可參考: http://jyhshin.pixnet.net/blog/post/42432082-linux-pthread-cancel-part2 mycode都在github上喔~^^ 悄悄話:我發現學校主機直接run server端,外面連得上去,看來port並沒有特別鎖起來。 下一步,啊~~我想寫破解踩地雷的程式......轉戰windows平台!! 閱讀完整內容
留言
張貼留言