C语言中的ftp服务器

C语言中的ftp服务器,c,ftp,C,Ftp,我必须用C语言开发1台FTP(简单)服务器。 简单是什么意思?? 我的意思是FTP服务器必须支持: 身份验证(用户、通行证、端口) 更改目录(CD) 文件列表(列表) 文件检索(RETR) 我刚刚将数字1-2-3-4开发为“分割部分”,我必须将它们合并到main.c中。所以他们没问题。 我不明白的是如何“接收”来自客户的通信。我的意思是如何实现客户想要的(用户、通行证、CD、列表、RETR)? 我已经阅读了rfc959,但是我还没有完全理解客户端和服务器之间的通信。 总结: 客户机连接到服务器(

我必须用C语言开发1台FTP(简单)服务器。
简单是什么意思?? 我的意思是FTP服务器必须支持:

  • 身份验证(用户、通行证、端口)
  • 更改目录(CD)
  • 文件列表(列表)
  • 文件检索(RETR)
  • 我刚刚将数字1-2-3-4开发为“分割部分”,我必须将它们合并到main.c中。所以他们没问题。
    我不明白的是如何“接收”来自客户的通信。
    我的意思是如何实现客户想要的(用户、通行证、CD、列表、RETR)?
    我已经阅读了rfc959,但是我还没有完全理解客户端和服务器之间的通信。
    总结:

  • 客户机连接到服务器(所以在服务器中这部分是套接字“accept(..”),对吗? 1服务器发送到客户端“您已连接”,对吗
  • 客户端发送到服务器用户,密码(文件1,auth.c,但我不知道当客户端向服务器发送用户和密码请求时如何读取)
  • 成功登录服务器后,发送文件列表(第3部分,list.c,没问题)
  • 客户端将要下载的文件或changedir命令发送给服务器(同样,如何从客户端的请求中读取此信息?
  • 我希望你能理解:)


    编辑:我在GNU/Linux上

    如果您正在使用Berkeley sockets API(您提到的
    accept()
    意味着您正在使用),则通常使用
    从套接字读取数据。您需要从客户端连接到的套接字读取数据,然后检查所得到的数据,以确定它是否是您可以处理的有效命令。

    虽然您的问题有点令人困惑,但我正在尝试回答它。获取命令行参数,如“Username Password”,并通过
    send
    将这些参数传递给服务器,并在服务器端使用
    recv
    进行接收。为了更好地理解,请参阅链接


    希望这能解决您的困惑。

    我正在寻找一个代码来学习带套接字的ftp的工作原理,并在google代码中找到文件工作,代码清晰简单。
    URL:

    我建议您从更简单的开始,先阅读网络教程,直到您知道什么是套接字以及它们是如何工作的,如何创建简单的客户端、简单的服务器,阻塞套接字和非阻塞套接字之间的区别,以及可以处理多个连接的服务器(基本上按照这个顺序)。然后你就可以开始研究制作FTP服务器了。当然,除了上述与网络相关的内容外,你还需要对字符串和字符串解析、文件处理和列表等方面有一些基本的了解。我已经开发了一个小型客户端和服务器(也使用fork),但它们的工作方式与FTP客户端和服务器不同。事实上,我的程序使用的是:1)客户端连接到服务器2)客户端发送“文件列表”3)服务器发送结果4)客户端发送文件名5)服务器发送文件…所以不像ftp XD。在我看来,您的问题更多的是如何解析客户端发送的命令,对吗?我认为你应该把这些过于笼统的问题分成更具体的问题,每一个问题都描述一个问题。阅读史蒂文斯关于网络编程的书,看在上帝的份上,不要把Beej的指南当成是放射性的。哦,对不起:)是的,我在GNU/Linux上开发:)但我不明白的是“客户端发送了什么”?它发送“用户用户名通过pasw”或“Hello USER selected is username”或其他??请记住向上投票并接受解决方案,如果它对您有帮助:-)