2012-02-29 38 views
-1

enter image description here如何将项目添加到队列中,然后开始一个接一个地发送它们?

我做(客户端 - 服务器)之间的文件传输应用程序,有我需要的工具,但我有点困惑如何发送的文件。这是我有:

  • localListView - 一个工具,我可以得到具有文件名,路径,当前地址selectedItems等
  • remoteListView - 同上述
  • 发送的方法,它采用SourcePath(来自localListView的filePath)和DestinationPath(来自remoteListView的currAddress)
  • 图片底部的工具是XPTable工具

他们都能正常工作,但我只需要一种方法来编写代码,以便将要发送到队列中的项目发送出去。我还需要一个指向我的应用程序发送的当前文件的指针。第一个文件发送成功后,指针应该转到列表中的下一个文件并启动发送方法。

我该怎么做?

如果你对如何在c#或伪代码或者任何能够帮助我的东西感到满意的情况下有个好主意,

+0

怎一个爽UI! – BlackBear 2012-02-29 15:19:40

+0

你到底需要什么帮助? – 2012-02-29 15:20:09

回答

1

当您添加项目到列表中,你可以做这样..设置每个项目的标签为假..这意味着当你开始你没有把它尚未

item.Tag = false; 

然后发送的项目..它会检查每个项目的标签,如果假的(尚未发送),你会送它和它的标签设置为True(项目发送)等

void startTransferFiles() 
{ 
    foreach (ListViewItem item in listView1.Items) 
    { 
     if ((bool)item.Tag == false) 
     { 
      Send(item.ToolTipText); 
      item.Tag = true; 
     } 
    } 
} 
1

正如我不能完全肯定,你需要帮助,我给你的好技术的概述:

我会想象你将不得不实施的答复。 我希望你已经使用了TCP,它自动验证正确接收的数据包。但是通过这种内置的功能,您无法验证整个文件是否已成功发送。

如果可以增加服务器和客户端之间发送的数据包数量,则可以编写服务器在收到整个文件时发送的回复。得到这个回复后,指针可以增加1(转到下一个列表项),发送方法将与下一个文件一起运行,整个过程将被重复。

从客户端和服务器发送/回复或推送/侦听功能是将错误或确认从一方推回另一方的好方法,并且保持两端正常工作 - 知道对方正在做什么。

如果您试图简化在客户端和服务器之间发送的数据包,您可以使用UDP,但这对于文件传输等事情并不是一个好的选择。您还可以简单地将所有数据以一大块而不是一点点的方式进行流式传输 - 但是,如果您需要,您将无法真正验证每个正在发送的文件。

+0

即时通讯使用TCP发送/接收文件..当文件成功发送时,我可以从服务器获得回复消息..发送方法工作正常..即时通讯想知道将项目放入队列的技术,所以当答复来从服务器“发送”..我去下一个文件..我会写的代码..但我想在.Net或其他一些库中使用队列库,这将确保它的权利我的问题有点像你去购物时,你不确定你想买什么衬衫。大声笑 – 2012-02-29 16:16:43

+0

也许这个网页将帮助你更深入地了解你想要做的事情:http://msdn.microsoft.com/en-us/library/ms379571(v=vs.80).aspx – jwddixon 2012-02-29 17:18:21

相关问题