与LAN上的应用程序通信

时间:2011-01-03 02:13:51

标签: c# .net vb.net networking network-programming

我想用娱乐目的编写应用程序代码。这应该是一个桌面应用程序,它检测自己在同一LAN上的其他计算机上运行并与它们通信。通过沟通,我的意思是我应该能够将任何东西传递给另一个人。

请注意,虽然我不是要求代码(这当然会超出我的目的)但我认为一些小小的片段不会受到伤害。在任何情况下我真正想要的是“推荐的程序”,我的意思是微软推荐的环境和文档:)

3 个答案:

答案 0 :(得分:3)

如果这是您的第一个网络应用程序,您应该从套接字开始,这样您就可以从头开始理解和理解构建这样的应用程序所涉及的问题。实际上,您要构建的是点对点应用程序。你需要在这里考虑和研究很多事情,比如:

  1. 同行发现 - 检测网络上的其他实例并确定它们是否仍然在线
  2. 消息传递 - 为您的应用设计有线协议
  3. 安全性 - 加密,阻止重播等内容 攻击等。
  4. 最终(一旦您理解了基础概念),您将希望将所有这些推迟到框架而不是从头开始开发所有内容。我认为WCF peer-to-peer符合您的需求。

答案 1 :(得分:2)

正如Taz所说,套接字编程是最佳选择,但您可以使用其他解决方案,例如WCF(通常不推荐)。

关于在LAN上查找其他实例我可以说你需要一些扫描算法。大多数worms都有这样的传播算法。您应该考虑许多网络问题,例如目标LAN上的开放端口和防火墙限制。

另一点可以使用超过5000的TCP端口(最多65535,但不使用着名的端口),因为5000以下的端口可能会被操作系统使用。

还需要您自己的TCP / IP协议,以便在对等体之间进行消息传递/命令和数据传输。

最后,在这类项目中接触网络/安全顾问是一个好主意,因为您遇到的大多数问题不是编程而是网络。

答案 2 :(得分:1)

套接字编程?让他们在特定端口上监听,每当应用程序启动时,它应连接到该套接字并且它们都已连接。我不确定应用程序应该如何搜索在LAN上运行的其他应用程序实例。