Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何管理控制套接字和传输套接字?_Linux_Sockets_Networking - Fatal编程技术网

Linux 如何管理控制套接字和传输套接字?

Linux 如何管理控制套接字和传输套接字?,linux,sockets,networking,Linux,Sockets,Networking,我们正在开发一个基于C/S的网络应用程序,在这个应用程序中,服务器需要向客户端传输文件,有时还需要从客户端接收文件。因此,在服务器应用程序中,对于每个客户机,都需要创建一个控制套接字和多个传输套接字 我的问题是如何创建和定义一个套接字作为控制套接字或传输套接字的角色?(以下内容已删除:服务器应用程序如何区分控制套接字和传输套接字?)。目前,服务器使用侦听套接字,对于由accept(侦听套接字)建立的所有新连接,它将它们平等地存储在一个数组中,最后让客户端将它们注册到服务器作为控制套接字或传输套接

我们正在开发一个基于C/S的网络应用程序,在这个应用程序中,服务器需要向客户端传输文件,有时还需要从客户端接收文件。因此,在服务器应用程序中,对于每个客户机,都需要创建一个控制套接字和多个传输套接字

我的问题是如何创建和定义一个套接字作为控制套接字或传输套接字的角色?(以下内容已删除:服务器应用程序如何区分控制套接字和传输套接字?)。目前,服务器使用侦听套接字,对于由accept(侦听套接字)建立的所有新连接,它将它们平等地存储在一个数组中,最后让客户端将它们注册到服务器作为控制套接字或传输套接字(意味着在传输文件之前,客户机需要告知它要将哪个套接字用作控制套接字,以及它要将哪个套接字用作传输套接字)

我不认为这是一种在服务器应用程序和客户端之间创建控制套接字和传输套接字的好模式。那么还有其他模式适合这种问题吗

如何创建此控制套接字和所有其他传输套接字

和创建其他套接字的方法一样。我不明白这个问题

服务器应用程序如何区分控制套接字和传输套接字


通过客户端告知,并在每个客户端的某种数据结构中记住它。或者,您应该为控制套接字和传输套接字使用不同的侦听端口。或者,传输套接字应该是FTP中的回调。

1。关于第一个问题,我的意思是,服务器如何创建和定义套接字作为c的角色控制插座或传输插座?它是否平等地(同时)创建控制插座和传输插座?还是创建控制插座并允许“控制插座”类创建传输套接字?2.关于第二个问题,谢谢,我认为你是对的,实际上FileZilla OSS也是这样做的。但这是否意味着客户端必须告知服务器每个传输套接字?在创建每个传输套接字之前,必须进行一些应用层握手?@StevePeng(1)正如我所说,我不理解这个问题。服务器根本不创建套接字,它接受它们。(2)我建议您仔细看看FTP RFC。客户端告诉服务器要打开哪个端口,然后服务器打开它。