【发布时间】:2020-01-09 00:39:53
【问题描述】:
我们有 TCP 套接字连接,从我的计算机到远程地址。
请澄清以下几点:
socket TCP连接完成后,客户端端口打开,服务器端口也打开?
我想了解当我们向套接字写入内容时,套接字将数据保存在哪里?我们在服务器和客户端上有两个相同的文件?还是存储在 RAM 内存中的数据?
如果数据存储在文件中,我可以在 linux 上找到文件,尤其是在 ubuntu 18.04 上吗?
【问题讨论】:
我们有 TCP 套接字连接,从我的计算机到远程地址。
请澄清以下几点:
socket TCP连接完成后,客户端端口打开,服务器端口也打开?
我想了解当我们向套接字写入内容时,套接字将数据保存在哪里?我们在服务器和客户端上有两个相同的文件?还是存储在 RAM 内存中的数据?
如果数据存储在文件中,我可以在 linux 上找到文件,尤其是在 ubuntu 18.04 上吗?
【问题讨论】:
- socket TCP连接完成后,客户端的端口打开了,服务器的端口也打开了?
是的。
- 我想了解当我们向套接字写入内容时,套接字将数据保存在哪里?我们在服务器和客户端上有两个相同的文件?还是存储在 RAM 内存中的数据?
您不能在服务器和客户端上拥有相同的文件,除非它们都在同一台机器上。但即使它们是,整个数据都保存在每个套接字的内存中:一个缓冲区用于传入数据,一个缓冲区用于传出。当新数据到来时,操作系统会对其进行缓冲,直到应用调用 .read()。请注意,这是一个实现细节。
- 如果数据存储在文件中,我可以在 linux 上找到文件,尤其是在 ubuntu 18.04 上吗?
它不在文件中。
【讨论】: