之前在學習關於網絡tcp和多線程的編程,學了知識以后不用一下總絕對心虛,於是就編寫了一個基於tcp和多線程的多人聊天室。 具體的實現過程: 服務器端:綁定socket對象->設置監聽數->等待連接->有客戶端連接就新建一個線程,這個線程中,一旦就收到這個客戶發送 ...
開發環境:Linux,GCC 相關知識:TCP 博客:傳送門 ,線程 附加:項目可能還有寫不足之處,有些bug沒調出來 如:對在線人數的控制 ,希望大佬賜教。 那么話不多說,放碼過來: 碼雲:傳送門,GitHub:傳送門 服務端:server.c 客戶端:client.c ...
2019-08-21 16:18 0 603 推薦指數:
之前在學習關於網絡tcp和多線程的編程,學了知識以后不用一下總絕對心虛,於是就編寫了一個基於tcp和多線程的多人聊天室。 具體的實現過程: 服務器端:綁定socket對象->設置監聽數->等待連接->有客戶端連接就新建一個線程,這個線程中,一旦就收到這個客戶發送 ...
接上篇博文,本文是server端的實現,主要實現的功能,就是現實client的連接。轉發client發送的消息。以及client掉線提示等功能,同一時候能夠在這這上面擴展和TCP以及線程相關的功能木塊。 tcpreceive.h ...
自從開始學linux網絡編程后就想寫個聊天室,一開始原本打算用多進程的方式來寫,可是發覺進程間的通信有點麻煩,而且開銷也大,后來想用多線程能不能實現呢,於是便去看了一下linux里線程的用法,實際上只需要知道 pthread_create 就差不多了,於是動手開干,用了兩天時間,調試的過程挺 ...
[linux環境編程] TCP通信與多線程編程實現“多人在線聊天室” 一、基本概念 1、TCP通信 TCP(Transmission Control Protocol)就是傳輸控制通訊協議,是TCP/IP體系結構中最主要的傳輸協議。其“三次握手”提供了可靠的傳送,高可靠性保證 ...
要用到多線程以及線程的讀寫鎖,之前寫的Socket類、ServerSocket要做相應的改變 因為服務器端要維持着一個存儲客戶端Socket信息到數據結構,當多個線程同時訪問這個結構時,要做同步處理,所以要在適當的時候加上讀鎖或寫鎖。 新的ServerSocket類 其中有 ...
具備注冊賬號,群聊,查看在線人員信息,私發文件和接收文件功能,因為每個客戶端只有一個屬於自己的socket,所以無論客戶端是發聊天消息還是文件都是通過這一個socket發送, 這也意味着服務器收發任何消息或文件都只能有一個select函數也意味着只能有一個收發消息的線程。 所以我定義了一個 ...
本來這次作業我是想搞個圖形界面的,然而現實情況是我把題意理解錯了,於是乎失去了最初的興致,還是把程序變成了功能正確但是“UI”不友好的console了,但是不管怎么樣,前期的圖形界面的開發還是很有收獲 ...
多線程開發和Socket技術 一、進程和線程 進程:每個應用程序對應一個進程; 線程:一個進程至少包含一個線程,線程要和CPU進行交互。 多線程並發(可以理解為):"同一時間"執行多件事情,如程序一邊執行,一邊計數(計時);如人一邊吃飯,一邊看電視。 多線程並發的本質 ...