使用多线程的套接字服务器或文件服务器实现:概念不清楚

2024-05-06

请帮我理清这个概念。假设我们有一个使用线程实现的套接字端口服务器。套接字服务器侦听套接字端口,并在消息到达时创建一个线程来服务该请求。

客户端代码向服务器发送给定数量的消息。该客户端代码也可以由多个用户在不同的计算机上运行。我知道客户端代码作为单独的进程运行。Ihat 是单独的进程向服务器发出请求,然后由服务器线程处理。

因此,客户端进程堆栈、用户地址空间、进程控制块等是否会传递到处理其请求的服务器线程。

类似地,如果它是一个文件服务器,并且文件打开请求是由服务器线程实现的,那么fd就是服务器文件描述符表或调用进程的一部分。

如果能获得我可以阅读的材料的链接,我将不胜感激。 谢谢


不,客户端和服务器是不同的进程,甚至可能运行在不同的机器上。

客户端将要求操作系统(通过库)将网络消息发送到服务器,服务器的操作系统将解压缩它们并将它们(通过库)引导到服务器进程。

现在“客户端处理线程”是另一回事,它们是服务器进程的子组件,在您的设置中,其中一个线程(在网络另一端处理客户端的线程)将接收数据并执行任何操作需要(如有必要,可能包括回复)。

在文件服务器情况下,操作系统提供的文件描述符永远不会“离开”文件服务器。文件服务器客户端创建镜像远程计算机内容所需的任何内容。此类镜像可能包括文件描述符,但它们绝对与驻留在服务器上的文件描述符不同。客户端文件描述符绑定到接受请求的操作并将其转换为网络调用的代码,而服务器文件描述符(可能)直接访问磁盘上的块。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用多线程的套接字服务器或文件服务器实现:概念不清楚 的相关文章

随机推荐