多个安装相互通信

时间:2014-10-16 23:38:33

标签: c# vb.net visual-studio cmd communication

我正在寻找一个安装在两台计算机上的程序,一台是“服务器”,另一台是“客户机”。客户端软件将命令发送到服务器,基本的东西,如CMD命令等。

关于如何开始沟通的任何想法?

编辑: 该软件将检测安装是在“客户端”还是“服务器端”(通过操作系统,'例如Windows Server 2008 / Windows 7')然后将提示用户登录(由数据库支持)和然后,软件的客户端将检测所有已安装的服务器,并能够向服务器端发送基本命令,例如但不限于“关闭”; '睡觉'; '更改密码'。

但是,我无法将从客户端发送的命令发送到服务器端,我希望这可以解决问题。

服务器/客户端将通过主机服务器或直接相互连接。

2 个答案:

答案 0 :(得分:0)

有很多方法可以实现您的要求。没有更多具体细节,很难给出简单的答案。

在大多数现代环境中,UDP和TCP / IP以太网/ WiFi是大多数通信技术用来传递数据的主要基础网络技术。

在Windows中,您有许多选项可以在两台或多台计算机之间传递数据,包括:

  • UDP消息广播
  • TCP套接字
  • RPC - 一种基于C的API,允许客户端'拨打服务器'
  • 提供的服务
  • DCOM - 基于COM的基于RPC的层
  • COM +(.NET企业服务) - DCOM的更强大的替代方案
  • WCF - 一个非常灵活,可扩展的编程接口,通过多种不同编码(即二进制,XML,JSON)和传输(即UDP,TCP,命名管道,HTTP)的组合来构建
  • Web - 通过HTTP传递XML / JSON(它本身使用TCP下面)
  • 排队(MSMQ,MQ系列,RabbitMQ等) - 用于缓冲 - 异步(可能断开连接)的通信
  • many, many more

如果您要开始,您可能想尝试创建两个简单的命令行应用程序,这些应用程序使用TCP套接字传递简单数据(例如" Hello World")来自'客户机'到服务器'那是在TCP端口上监听。

如果您想要更复杂一点,您可能还想查看我的基于WCF的 Magic8Ball 示例客户端和服务项目。

答案 1 :(得分:0)

最简单的方法是在服务器中使用TcpListener类,它将侦听端口以接受来自客户端的连接。

然后,客户端将使用TcpClient类连接到服务器的端口,并使用TcpClient的流向服务器输出命令。

互联网上有很多简单的实现,可以通过谷歌搜索“C#TCP服务器和客户端”。