CSocketFile

CSocketFile CArchive ar.Close();

進行Socket編程,不能不提到CSocketFile類,其實它並不是用來在Socket雙方傳送檔案的,而是將需要序列化的數據,比如一些結構體數據,傳給對方,這樣,程式的CDocument()的序列化函式就完全可以和CSocketFile聯繫起來。例如你有一個CMyDocument實現了Serialize(),你可以這樣來將你的文檔數據傳給Socket的另一方:
CSocketFile file( pSocket );
CArchive ar( &file, CArchive::store );
pDocument->Serialize( ar );
ar.Close();
同樣,接收一方可以只改變上面的代碼為CArchive ar( &file, CArchive::load );即可。
注意到,CSocketFile類雖然從CFile派生,但它禁止掉了CFile::Open()等函式,而函數裡僅扔出一個例外。那么也就是說,你不能調用CSocketFile的Open函式來打開一個實實在在的檔案,否則會導致例外,如果你需要利用CSocketFile來傳送檔案,你必須提供CSocketFile類的這些函式的實現。
再一點,CArchive不支持在Datagram的Socket連線上序列化數據

相關詞條

相關搜尋

熱門詞條

聯絡我們