套接字是否保存HDD上的任何数据
Does sockets save any Data on HDD?
我有一个问题看起来可能很奇怪,但我在脑海中出现了。
我用C#制作了一个小型套接字客户端-服务器聊天应用程序。我想知道套接字是在硬盘上保存任何数据,还是只使用RAM?
如果是,那么C/C++的情况也一样吗?
我的意思是,例如,如果我从客户端向服务器发送一些消息。它是保存在硬盘上的某个地方,还是只存在于RAM中?我的意思是,操作系统是否将其存储在某个地方?
如果我问了一个愚蠢的问题,我很抱歉。
感谢
问候
这不是一个愚蠢的问题,但我们也无法回答。这取决于实现,也取决于您想要考虑的堆栈的深度。一般来说,我不希望网络堆栈将数据保存到磁盘上。然而,操作系统可能会将其写入磁盘,作为其虚拟内存管理的一部分(因此,例如,如果这是一个安全问题,那么是的,它最终可能会出现在磁盘上)。
RAM连接到RAM,然后连接到RAM。不涉及HDD。然而,如果物理内存不足,一些包含通过套接字来的数据的内存页可能会交换到磁盘。除此之外,没有涉及HDD。
除非实现了序列化,否则它不会保存在硬盘中(http://en.wikipedia.org/wiki/Serialization)在您的代码中。如果您不在堆中分配内存,那么在C++或malloc中使用new运算符或其家族函数(如果是C),它就不会在堆中写入任何内容。在使用堆时,它可能会访问硬盘驱动器内存,但不是强制性的。如果您阅读以下内容,您可能会对C/C++程序中的内存操作有一个很好的了解http://gribblelab.org/CBootcamp/7_Memory_Stack_vs_Heap.htmlhttp://en.wikipedia.org/wiki/Virtual_memory
- 从输入中删除重复项,而不使用任何数据结构
- 有没有办法在函数 c++ 中输入任何数据类型?
- 我们可以直接为任何数据成员赋值. 为什么要使用构造函数?
- glGetBufferSubData() 不返回任何数据?
- 字符串流在清除后不接受任何数据
- GLSL 计算着色器 使用查找表设置缓冲区会导致不写入任何数据,与其他数据设置相同的缓冲区有效
- C 通用函数以除以任何数据类型
- 我可以通过向量附加特征矩阵而不复制任何数据
- 是否有任何数据类型或方法可以计算当前单元格中先前数组单元格的总和
- 将任何数据类型/对象作为参数传递以确定其大小
- 是否要确保一个线程修改的任何数据类型的共享变量对其他线程可见
- RAW ICMP 套接字:recvfrom() 未接收任何数据
- stl 中是否有任何数据结构可以在 O(1) 或 O(log n) 中插入元素,我可以在其上编写自己的bin_searc
- 为什么我的C++ ZeroMQ 订阅者没有收到任何数据
- Adafruit Fona与echo服务器建立连接,但不发送任何数据
- 为什么字符串变量"sum"不存储任何数据,程序不给出任何输出
- 难以创建可以容纳任何数据类型的模板通用向量
- 没有任何数据成员的类会导致内存泄漏吗?
- 引用计数(不存储任何数据)
- CLOB 不包含任何数据