C# 如何将项目添加到队列中,然后开始逐个发送?
我正在(客户机-服务器)之间制作一个文件传输应用程序,并拥有所需的工具,但我对如何发送文件有点困惑。这就是我所拥有的:C# 如何将项目添加到队列中,然后开始逐个发送?,c#,queue,client-server,send,C#,Queue,Client Server,Send,我正在(客户机-服务器)之间制作一个文件传输应用程序,并拥有所需的工具,但我对如何发送文件有点困惑。这就是我所拥有的: localListView-我可以获取selectedItems的工具,其中包含文件名、路径、当前地址等 remoteListView-与上述相同 采用源路径(localListView中的filePath)和DestinationPath(remoteListView中的currAddress)的Send方法 图片底部的工具是XPTable工具 它们都可以正常工作,但我只
- localListView-我可以获取selectedItems的工具,其中包含文件名、路径、当前地址等
- remoteListView-与上述相同
- 采用源路径(localListView中的filePath)和DestinationPath(remoteListView中的currAddress)的Send方法
- 图片底部的工具是XPTable工具
如果您对如何使用c#或伪代码或任何有助于我的方法有很好的了解,我将不胜感激。由于我不完全确定您在哪里需要帮助,我将向您概述一些好的技术: 我想你必须实施一个答复。 我希望您已经在使用TCP,它会自动验证正确接收的数据包。但使用此内置功能,您无法验证整个文件是否已成功发送 如果可以增加服务器和客户端之间发送的数据包数量,则可以在接收到整个文件时编写由服务器发送的回复。收到此回复后,指针可以增加一(转到下一个列表项),send方法将与下一个文件一起运行,整个过程将重复 客户机和服务器都具有发送/回复或推送/侦听功能,这是一种将错误或确认从一个推送到另一个的好方法,可以让两端都工作—知道另一个在做什么
如果您试图最小化客户端和服务器之间发送的数据包,您可以使用UDP,但这对于文件传输之类的事情来说确实不是一个好的选择。您也可以简单地将所有数据流成一大块,而不是一点一点地传输,但您不会得到所发送的每个文件的真正验证。。将项目添加到列表中时。。将每个项目标记设置为false。。那意味着你还没有寄出去
item.Tag = false;
然后当您开始发送项目时。。它将检查每个项目的标签,如果为false(尚未发送),您将发送它并将其标签设置为True(项目已发送),依此类推
void startTransferFiles()
{
foreach (ListViewItem item in listView1.Items)
{
if ((bool)item.Tag == false)
{
Send(item.ToolTipText);
item.Tag = true;
}
}
}
你到底在哪里需要帮助?我正在使用TCP发送/接收文件。。当文件成功发送时,我可以从服务器收到回复消息。。send方法工作正常。。我想知道的技术,把项目在一个队列中,所以当答复来自服务器“发送”。。我转到下一个文件。。我会写那个的代码。。但是我想使用.Net中的队列库或其他一些库,以确保其正确运行。。我的问题有点像当你去购物时,你不确定你想买什么衬衫。Lol也许本页将帮助您更详细地了解您要做的事情: