開發環境:Linux,GCC 相關知識:TCP(博客:傳送門),線程 附加:項目可能還有寫不足之處,有些bug沒調出來(如:對在線人數的控制),希望大佬賜教。 那么話不多說,放碼過來: 碼雲:傳送門,GitHub:傳送門 服務端:server.c ...
自從開始學linux網絡編程后就想寫個聊天室,一開始原本打算用多進程的方式來寫,可是發覺進程間的通信有點麻煩,而且開銷也大,后來想用多線程能不能實現呢,於是便去看了一下linux里線程的用法,實際上只需要知道 pthread create 就差不多了,於是動手開干,用了兩天時間,調試的過程挺痛苦的,一開始打算用純C來擼,便用簡單的數組來存儲客戶端的連接信息,可是運行時出現了一些很奇怪的問題,不知 ...
2016-05-19 18:26 0 3300 推薦指數:
開發環境:Linux,GCC 相關知識:TCP(博客:傳送門),線程 附加:項目可能還有寫不足之處,有些bug沒調出來(如:對在線人數的控制),希望大佬賜教。 那么話不多說,放碼過來: 碼雲:傳送門,GitHub:傳送門 服務端:server.c ...
要用到多線程以及線程的讀寫鎖,之前寫的Socket類、ServerSocket要做相應的改變 因為服務器端要維持着一個存儲客戶端Socket信息到數據結構,當多個線程同時訪問這個結構時,要做同步處理,所以要在適當的時候加上讀鎖或寫鎖。 新的ServerSocket類 其中有 ...
接上篇博文,本文是server端的實現,主要實現的功能,就是現實client的連接。轉發client發送的消息。以及client掉線提示等功能,同一時候能夠在這這上面擴展和TCP以及線程相關的功能木塊。 tcpreceive.h ...
本來這次作業我是想搞個圖形界面的,然而現實情況是我把題意理解錯了,於是乎失去了最初的興致,還是把程序變成了功能正確但是“UI”不友好的console了,但是不管怎么樣,前期的圖形界面的開發還是很有收獲 ...
多線程開發和Socket技術 一、進程和線程 進程:每個應用程序對應一個進程; 線程:一個進程至少包含一個線程,線程要和CPU進行交互。 多線程並發(可以理解為):"同一時間"執行多件事情,如程序一邊執行,一邊計數(計時);如人一邊吃飯,一邊看電視。 多線程並發的本質 ...
【目標實現】 模擬一個聊天室,任意一個客戶端窗口可以發送消息,同時也可以接收聊天室內所有人的消息。 【服務器端】 【客戶端】 【效果截圖】 【發現問題】 1.exit和return ...
目標: linux系統下實現聊天室 (1)在Linux系統下,使用TCP協議套接字編程; (2)服務器應具有處理多個客戶端連接能力(設定最大連接數,如5個); (3)具有群發和私聊的能力; (4)過程描述 客戶端:連接服務器后,應能接收服務器發來信息並處理的能力,當收到聊天信息時 ...
[linux環境編程] TCP通信與多線程編程實現“多人在線聊天室” 一、基本概念 1、TCP通信 TCP(Transmission Control Protocol)就是傳輸控制通訊協議,是TCP/IP體系結構中最主要的傳輸協議。其“三次握手”提供了可靠的傳送,高可靠性保證 ...