C++编写ftp服务器时,Ftp服务器与客服端建立连接之后,怎么协商数据传输端口(程序实现)?

2025-05-30 17:18:05
推荐回答(3个)
回答1:

当用accept函数与客户端请求建立连接之后,accept函数将自动新建一个套接字(假设为s2),这个新建的套接字和客户端相连接并收发数据,而原来在监听状态的套接字(假设为s1)仍然处于监听状态,以便接受下一个连接请求。在accept函数返回s2之前,bind、listen、accept都是针对s1进行的。而accept函数返回s2之后的send和recv都是针对s2.

至于代码,想深究的话,建议去看看"tcp/ip详解"第二卷

回答2:

写ftp服务器,肯定要参考ftp标准协议,上面有详细的请求响应的过程,定义了消息的格式,数据传输的方式,各种命令的功能,各种响应状态信息,等等。做这种比较开放的网络应用,必须按标准来,要不然别的客户端和你的服务器交互起来就会有问题。说实话,做一个服务器还是非常复杂的。祝你好运!

http://www.ietf.org/rfc/rfc959.txt

回答3:

客户端新建一个套接字并绑定一个端口,把这个新端口通知服务器,服务器也用一个新套接字来连接客户端的这个新端口,这样就行了。
不同端口用不同的套接字。