C#app如何轻松地在网络上传输和传输文件?

Rob*_*cks 7 c# networking data-transfer communication file-transfer

C#app如何轻松地与位于同一网络上的另一台计算机上的自身实例进行通信,并传输文件和数据?

假设网络上的计算机具有固定的本地IP地址,并且每个计算机都知道彼此的IP.如果IP未知,是否还有通信方式?基于一些发现协议?

我听说Apple的"Bonjour"服务是一个很好的协议.我们可以通过Windows应用程序进行通信吗?或者你必须使用"套接字".我主要是在寻找可以轻松满足我需求的库或示例代码,我不想开发自己的基于TCP的协议或任何硬核!

ecl*_*eel 5

您可以使用System.Net.Sockets类进行通信,它有一个发送文件Socket.SendFile的方法.

更新:
这是文件共享和从C#help发送文件的一个很好的例子


dri*_*iis 2

为了传输文件/数据,您可以使用TcpClient / TcpListener类,这是对 grittier 套接字功能的很好的抽象。或者,您可以简单地使用HttpListener类将应用程序作为 HTTP 服务器,如果这对您的应用程序来说更容易/更合适的话。

对于发现,如果您能够拥有中央服务器;那么你可以让每个客户端在启动时连接到服务器,注册自己并检索其他在线客户端及其 IP 的列表。随后的通信可以直接在客户端之间进行。

该方案的一种变体是让中央服务器充当代理,客户端之间的所有流量都流经该代理。如果客户端不在同一网络上,这对于克服防火墙或路由问题非常有帮助(因此您的场景可能不需要)。