c# - 使用 TCP 客户端接收多个文件

标签 c# file tcp client

我想创建一个 TcpClient,它可以根据名称自动从服务器获取多个文件。

我想了解如何构建此类应用程序。

我的想法是:

制作一个包含 SwitchCase 的 for 循环,我在其中指定我的文件名。我真的不知道这是否会奏效。

要跳出 for 循环,我可以将索引运算符与文件数进行比较。如果它们相等,那么我就退出 for 循环。

我的想法示例:

for (int i = 1; i <= 4; i++)
{

switch (----)
        {
            case 'file1':
                code...
                break;
            case 'file2':
                code...
            case 'file3':
                code...
                break;
            case 'file4':
                code...
                break;
            default:
                code...
                break;
        }

}

最佳答案

要使用 ftp 下载文件,您可以使用 FtpWebRequest对于 http 使用 HttpWebRequest . 下面是一个简单的示例,说明如何使用 http 请求文件(方法与 ftp 类似):

public void Download(string url, string localPath)
{
    HttpWebRequest request = HttpWebRequest.Create(url);
    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
    Stream stream = response.GetResponseStream();
    FileStream fs = new FileStream(localPath, FileMode.Create);

    int count;
    byte[] buffer = new byte[8096];
    while ((count = stream.Read(buffer, 0, 8096)) > 0)
        fs.Write(buffer, 0, count);

    fs.Dispose();
    response.Close();
}

与其在 for 循环中使用 switch,不如迭代一个数组:

string[] files = new string[]{ url1, url2, ...};
for(int i = 0; i < files.Length; i++)
{
    Download(files[i], "file" + i);
}

关于c# - 使用 TCP 客户端接收多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19444308/

相关文章:

javascript - Bootstrap 导航面板和日期选择器,带有对 C# Controller 的 javascript 调用

c# - 将 URL 片段添加到 MVC ActionLink

php file() 方法在服务器中不起作用

c - solaris 上的 C 中的 fopen

java - TCP服务器只接收一条消息

c - Stat 函数在有效路径上始终返回 -1

Java通过tcp套接字有效地发送floatbuffer

c# - 如何使用 msi Installer 安装同一应用程序的多个实例

C#在哈希表中使用变量时找不到对象

从动态分配的文件中计算最多重复出现的元音