2014-10-16 77 views
-4

我正在尋找開發一個安裝在兩臺計算機上的程序,一個是'服務器',另一個是'客戶端'。客戶端軟件將命令發送到服務器,基本的東西,如CMD命令等多個安裝相互溝通

任何想法如何獲得通信開始?

編輯: 軟件將檢測安裝是在「客戶端」還是「服務器端」(通過操作系統,例如Windows Server 2008/Windows 7)。然後會提示用戶登錄(由數據庫支持),然後軟件的客戶端將檢測所有安裝的服務器並能夠向服務器端發送基本命令,例如但不限於'關閉'; '睡覺'; '更改密碼'。

但是,我無法從客戶端發送到服務器端的命令,我希望這可以清除問題。

兩個服務器/客戶端將通過主機服務器或直接相互連接。

+0

這個問題需要更多的細節提供給任何人甚至試圖提供答案。 缺失的最重要的細節是關於2臺計算機如何連接/聯網的信息? – Karthik 2014-10-16 23:48:21

+0

我已經清除了我的問題。 – jaeko44 2014-10-17 02:51:16

回答

0

有很多方法可以完成你所要求的。沒有更多的細節,很難給你一個簡單的答案。

在大多數現代環境中,以太網/ WiFi上的UDP和TCP/IP是大多數通信技術用於傳遞數據的主要基礎網絡技術。

在Windows中,你有多種選擇兩個或兩個以上的機器,包括之間傳遞數據:

  • UDP消息廣播
  • TCP套接字
  • RPC - 一個基於C語言的API,允許'client'來調用由'server'提供的服務
  • DCOM - 基於RPC的基於RPC的層
  • COM +(.NET Enterprise Services) - DCOM的更強大的替代方案
  • WCF - 一個非常靈活的,可擴展的編程接口,通過許多不同的編碼組合(即二進制,XML,JSON)和傳輸(即UDP,TCP,命名管道,HTTP)
  • 通過HTTP傳遞XML/JSON(其本身使用TCP)
  • 隊列(MSMQ,MQ-系列,RabbitMQ等) - 用於緩衝異步(可能斷開連接)通信
  • many, many more

如果您開始使用,您可能想嘗試創建兩個使用TCP套接字將簡單數據(例如「Hello World」)從「客戶端」傳遞到「服務器」的簡單命令行應用程序,這是在TCP端口上偵聽。

如果您想要更復雜一點,您可能還想看看我的基於WCF的Magic8Ball示例客戶端和服務項目。

0

最簡單的方法是在服務器中使用TcpListener類,該類將偵聽端口以接受來自客戶端的連接。

客戶端然後將使用TcpClient類連接到服務器的端口並使用TcpClient的流將命令輸出到服務器。

互聯網上有很多簡單的實現可以通過搜索「C#TCP服務器和客戶端」找到。