學習c++已經有一段時間了,一直都是學習基礎的東西,每次寫的**都比較少,沒有明確的學習目標,基礎還是基礎,漫無邊際的,基本上都是做一道或者幾道演算法題,連乙個小小的實戰都沒有,也不知道自己學得怎麼樣了,現在終於有乙個小小的實戰了《c++ 乙個網路程式設計例項》。由於自己一直在做c#,只能業餘時間學習c++,都說c++ 是那麼的難,暫時還沒有感覺到有多難,畢竟寫**也有兩年多了。我要學習多久才能進一家做c++研發的公司呢?
相信在不遠處有一家c++研發公司在等著我。
這只是乙個小小的例項,包括socket程式設計、多執行緒、檔案操作。
簡單介紹:他實現了點對點聊天,乙個伺服器,乙個客戶端,主線程用來傳送資料,啟動乙個子執行緒用來接收資料,伺服器記錄聊天內容。他只是用上了上面所說的三個技術,如果你對上面三個技術不是很熟,或許對你有點幫助,如果你很熟,既然來了希望你能指導一下我,如果你是高手希望你能指導一下我的編碼問題。我太渴望寫出高效簡潔的**。
伺服器**:
客戶端**:
檔案操作**(filelog.h):
#include "iostream"#include "string.h"
#include
usingnamespace std;
class filelog
void unlock()
public:
filelog()
~filelog()
deletecriticalsection(&cs);//刪除臨界區
}bool open(constchar*filename);//開啟檔案
filelog& write(constchar*content);//向檔案中寫入內容
filelog& writeline(constchar*content);//向檔案中寫入內容
bool read(char*buf,int size);//讀檔案內容
bool close();//關閉檔案
};
#include "stdafx.h"#include "filelog.h"
//開啟檔案
bool filelog::open(constchar*filename)
}return false;
}//寫檔案 返回當前物件的引用,實現連線操作
filelog& filelog::write(constchar*content)
//開始的時候少寫了這句,由於加的鎖沒有釋放,乙個執行緒占用之後,導致其他執行緒只能一直等待,好久都沒有找到原因。
unlock();
return*this;
} //寫入一行
filelog& filelog::writeline(constchar*content)
unlock();
return filelog::write("\r\n");
} //讀檔案內容
bool filelog::read(char*buf,int size)
return isok;
}//關閉檔案
bool filelog::close()
unlock();
return isok;
}
C 之網路程式設計《一》
c 網路程式設計之初體驗 win socket 程式設計開始 test.cpp 定義控制台應用程式的入口點。include stdafx.h include include pragma comment lib,ws2 32.lib void initsocket byte,byte 申明方法 in...
C 網路程式設計
首先我們解釋一下在網路程式設計時候,經常遇到的幾個概念 同步 synchronous 非同步 asynchronous 阻塞 block 和非阻塞 unblock 所謂同步方式,就是傳送方傳送資料報以後,不等接受方響應,就接著傳送下乙個資料報。非同步方式就是當傳送方傳送乙個資料報以後,一直等到接受方...
C 網路程式設計
1 ip網路中的每台主機都有乙個ip位址 它是邏輯位址 網際網路上的ip位址具有全球唯一性 4個位元組,192.168.0.16 2 osi將網路分為 tcp ip模型 應用層 應用層 表示層會話層 傳輸層 傳輸層 網路層 網路層 資料鏈路層 網路介面 物理層相同層次之間不可以直接通訊,是虛擬通訊。...