C 網路程式設計 一

2022-05-08 07:03:09 字數 1644 閱讀 2970

學習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模型 應用層 應用層 表示層會話層 傳輸層 傳輸層 網路層 網路層 資料鏈路層 網路介面 物理層相同層次之間不可以直接通訊,是虛擬通訊。...