2016-10-03 18 views
0

我正在尝试为我的cpp ftp客户端实现主动模式。使用套接字的C++ FTP PORT命令实现

我试图实现简单的LISTEN服务器,netstat -ant表示它正在监听0.0.0.0:port(例如1025)。

在客户端当我发送端口0,0,0,0,4,1 \ r \ n服务器回复代码500 - 非法端口命令。

我应该多做些什么才能使它工作?由于

MOREINFO

我的服务器代码: ..sin_addr.s_addr = INADDR_ANY;我可以将inaddr_any更改为仅“正在运行”的IP filezilla与192.168.1.13服务器连接 - 当我使用192.168.1.13作为inet_addr(“192.168.1.13”)它工程但如何设置新的TCP侦听IP?当我尝试例如192.168.1时它返回BIND问题。

回答

2

您正在倾听0.0.0.0,这意味着'任何',但对等体需要一个实际的IP地址,而不是0.0.0.0。你需要发送一个公共IP地址到达你的监听套接字。

+0

感谢您的回复。我在我的代码中有:is.sin_addr.s_addr = INADDR_ANY,当我看到filezilla如何进入活动模式时,总是有“192.168.x.x”。那么我如何设置监听公共IP的服务器呢?谢谢 – jausch

+0

您不必更改有关服务器设置的任何信息。 INADDR_ANY对于这部分是完美的。你只需要在PORT消息中告诉对方它可以使用的东西。你不能连接到0.0.0.0,所以它不是有用的,或者是正确的。 – EJP

+0

好的,那么我怎么知道什么IP放到PORT命令?在我的Ubuntu上运行例如192.168.1.13,但它不会在我认为的每个系统上工作。谢谢 – jausch