Q
C++輸入輸出流
0
A
回答
3
不是;這兩個概念只有一個相似之處。
- C++輸入輸出流是一個非常低的水平構造用於讀取數據和接收操作系統的設備如文件系統,FIFO中,插座等
- 聊天服務過高層協議,如XMPP實現,它們通過由OS提供的套接字API在TCP上運行。
總之,他們是粉筆和奶酪。
已經有名義上的努力通過iostream設施提供對套接字的訪問,該設施旨在以這種方式進行擴展。但是,這些庫在主流C++編程中從未獲得過重要的關注。即使他們有,他們仍然還有很長的路要走,像XMPP一樣複雜。
0
是的,如果你能找到(或寫)一個庫來實現這個抽象。
正如馬塞洛所說,聊天服務等使用複雜的協議進行操作。但是對於stdio和文件流可以說類似的東西 - 寫入文件或文本模式顯示器的複雜性相當大(甚至沒有提到GUI中的控制檯窗口)。大部分複雜性已經被操作系統和標準庫抽象出來了。
仍然可以編寫一個庫來抽象出大部分複雜性。然後,該庫可以提供充當輸入和/或輸出流的對象,遵循與標準流相同的約定,並從相同的基礎繼承。
這可能是一種很好的方法,但AFAIK很少見。也許我錯了 - 我從來沒有真正爲這種事情編程。但是如果我是對的,一個可能的原因是庫經常被編寫爲與C和C++兼容。另外,即使在C++程序員之間,流抽象並不總是被認爲是一個很好的特性。很多人希望看到它們僅限於stdio和文件I/O,並且不認爲流是更普遍的抽象。
順便說一句 - 這不是Marcelos答案的真正矛盾。那「如果你能找到(或寫)一個圖書館」是一個很大的假設。
0
您可以創建一些類,例如MY_CLIENT。 在這個類,你需要實現的功能
std::streamsize write(const char *s, std::streamsize n);
std::streamsize read(char* s, std::streamsize n);
在該功能需要實現聊天室邏輯的協議,如何將數據發送到,和閱讀。
之後,看看boost::iostreams
庫。有了它,你可以寫水木清華這樣的:
boost::iostreams::stream< MY_CLIEN> my_chat_stream;
而且my_chat_stream可以作爲std::istream, std::ostream
使用你的程序,所有的C++流都面臨的機遇
相關問題
- 1. C++連接輸出流到輸入流
- 2. C#寫入輸出流
- 3. C++輸入輸出流問題
- 4. 文件輸入和輸出流在c
- 5. C++輸入流
- 6. 流水線輸入/輸出
- 7. Java EE輸入/輸出流
- 8. java輸入輸出流
- 9. JBoss輸入/輸出流
- 10. Java ProcessBuilder:輸入/輸出流
- 11. 輸入和輸出流
- 12. 關閉輸入/輸出流
- 13. 輸入/輸出流Java Servlets
- 14. 標準輸入/輸出流
- 15. 輸入/輸出流:流結束?
- 16. 使用'avserver'流輸入到流輸出
- 17. 出現在輸出流中的未輸入的C++數字
- 18. 以C輸出到輸入
- 19. C文件輸入&輸出
- 20. C++輸入輸出排序
- 21. 文件輸入輸出C++
- 22. 重新分配輸入/輸出流?
- 23. 輸入/輸出流量減少鏈
- 24. 快速Java輸入\輸出流
- 25. 究竟是什麼輸入/輸出流?
- 26. 帶輸入/輸出流的Java進程
- 27. Java的輸入輸出重定向流
- 28. Java中的多輸入/輸出流?
- 29. Bluetoothchat Android輸入/輸出流未關閉
- 30. Java的自定義輸入輸出流
哦TY的答案我只是想知道這就是 – ricedragon