C# 使用.NET WebClient或相关对象发送和接收文件

C# 使用.NET WebClient或相关对象发送和接收文件,c#,mono,webclient,file-transfer,httplistener,C#,Mono,Webclient,File Transfer,Httplistener,首先,我完全愿意接受其他策略的建议,因为这不是我非常熟悉的领域 我有一个我认为很简单的问题。我有一个客户端应用程序和一个服务器应用程序,我想从客户端向服务器发送一组文件。我不想要求用户设置文件共享或任何东西,因此我的想法是: 我将在“服务器”上安装一个应用程序,使用HttpListener侦听来自客户端的文件传输请求 我将在客户端上使用WebClient.UploadFile启动传输 Twist:服务器是Mac,我需要使用Mono支持的东西。我不想让服务器安装ASP.NET/IIS/任何东西。事

首先,我完全愿意接受其他策略的建议,因为这不是我非常熟悉的领域

我有一个我认为很简单的问题。我有一个客户端应用程序和一个服务器应用程序,我想从客户端向服务器发送一组文件。我不想要求用户设置文件共享或任何东西,因此我的想法是:

  • 我将在“服务器”上安装一个应用程序,使用HttpListener侦听来自客户端的文件传输请求
  • 我将在客户端上使用WebClient.UploadFile启动传输
  • Twist:服务器是Mac,我需要使用Mono支持的东西。我不想让服务器安装ASP.NET/IIS/任何东西。事实上,用户需要做的越少越好。(顺便说一句,在这种情况下,用户将同时控制客户端和服务器。)

    因此,简短的问题:

  • 有没有比WebClient/HttpListener更好/更简单的方法将一组文件从局域网上的一台机器发送到另一台机器?什么?什么的?(你可以看出我的无知。)
  • 假设我使用HTTP,有没有比使用HttpListener和手动解析请求以除去头等更直接的方法来下载文件

  • 可能是
    WebClient/WebServiceHost
    ?这样,您就不必管理服务器站点线程了……为什么不呢?然后下载并使用其PSFTP程序复制文件。这比编写、安装和维护一个自定义应用程序要容易得多。@JimMischel问题不在于我需要将一些文件从PC发送到Mac;实际上,我正在为最终用户构建软件,我不希望他们必须设置FTP服务器、手动使用putty等。事实上,整个要点是部署将在一次单击中完成,用户配置/操作尽可能少。要求最终用户设置FTP服务器等等,这有点违背了我的“it just works”解决方案的目的。按照我的设想,他们所要做的就是在Mac上安装一个应用程序,也许还可以设置一些次要的设置。我的观点是,应该可以编写一个脚本来自动完成服务器配置。客户端也一样。您可以轻松编写Powershell脚本、批处理文件或简单的C#程序来驱动SFTP。想一想,如果你让Mac成为一个简单的FTP服务器(即不是SFTP),那么你可以使用内置的Windows FTP客户端。或者,您可以找到一个,并在客户端代码中使用。