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