【问题标题】:Communicating to Applications on LAN与 LAN 上的应用程序通信
【发布时间】:2011-01-03 02:13:50
【问题描述】:

我想编写一个具有娱乐目的的应用程序。这应该是一个桌面应用程序,它检测自己在同一 LAN 上的其他计算机上运行并与它们通信。我所说的交流是指我应该能够将任何东西从另一个人传递给另一个人。

请注意,虽然我不是要代码(当然,这会超出我的目的),但我认为一些小的 sn-ps 不会造成伤害。无论如何,我真正想要的是“推荐程序”,我的意思是微软为这种环境推荐的内容和文档:)

【问题讨论】:

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


    【解决方案1】:

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

    1. 对等发现 - 检测网络上的其他实例并确定它们是否仍然在线
    2. 消息传递 - 为您的应用设计在线协议
    3. 安全性——例如加密、防止重播 攻击等。

    最终(一旦您了解了基本概念),您将希望将所有这些都交给一个框架,而不是从头开始开发所有东西。我认为WCF peer-to-peer 会满足您的需求。

    【讨论】:

      【解决方案2】:

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

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

      另外一点可以使用5000以上的TCP端口(最高65535,但不要使用知名端口),因为5000以下的端口会被操作系统使用。

      还需要您自己的 TCP/IP 协议,用于对等方之间的消息传递/命令和数据传输。

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

      【讨论】:

      • 我只是编写这个应用程序来精确了解你提到的所有问题......我无意构建一个应用程序来部署任何东西。我只是想扩大我对网络通信的了解,我基本上一无所知......
      • 好。所以不用担心网络问题。首先,您需要一个测试环境。只需使用多个虚拟机(Microsoft 虚拟机是不错的选择),首先写入通过TCP/IP 通信的控制台应用程序,然后在控制台上写入结果,一个作为服务器,另一个作为客户端。然后你可以编写更复杂的(服务器/客户端对等)
      【解决方案3】:

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

      【讨论】:

      • 这就是想法 :) 但我怎样才能监听端口并连接到它们呢?
      猜你喜欢
      • 1970-01-01
      • 2021-11-19
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 2023-04-06
      • 2017-07-06
      相关资源
      最近更新 更多