none
如何實作一server端及client端程式,使client端可即時存取server端功能 RRS feed

  • 問題

  • 應用場景:

    在遠端的windows主機上,存在一支server程式,接受外面設備的回報,並存入資料庫。

    有時須對設備下命令,因此必須先登入遠端windows主機,再操作server程式。

    這樣有幾個問題:

    - windows遠端桌面每次只能登入一人,多人登入前面的人會被踢出

    - 每次要看server狀態都要登入很麻煩

    因此我的想法是重做一支server程式,並提供一支client端程式來控制它,或是即時監看傳入的資料等,

    這樣便可多人同時操作而不互相干擾,每個人用client程式後,就像登入遠端一般可以操作所有的功能

    如何實作部份,我的想法是在server端開個tcp socket port收外部連接,並提供api讓server/client通訊

    但server端的功能不少,如果全部都建API通訊,要費的工可能滿多的

    我覺得這個功能滿像shell(SSH)遠端連線,只是有提供UI,另查詢時用remote access查發現一個streaming的想法(類似VNC),

    但我不知道要把什麼拿來做序列化來達到這個效果…

    不知道有沒有先進能提供一些關鍵字讓小弟能查詢相關的做法?或是說這種做法有沒有什麼名稱?

    因為以前沒試過類似功能,不知道該用什麼來查


    zeus

    2021年10月15日 上午 03:20

解答

  • 可以類似像和機器設備通訊一樣自己建立一種通訊協定規範,全靠 Byte[] 這樣就不用建立很多種 API , 類似這一篇的作法 Serial Port 系列(15) 基本篇 -- 發送回應(一) 裡面有一段通訊協定假設,你把序列埠想像成 Tcp 差不多一樣道理。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    • 已標示為解答 宙斯 2021年10月18日 上午 08:03
    2021年10月15日 下午 06:52
    版主

所有回覆

  • 可以類似像和機器設備通訊一樣自己建立一種通訊協定規範,全靠 Byte[] 這樣就不用建立很多種 API , 類似這一篇的作法 Serial Port 系列(15) 基本篇 -- 發送回應(一) 裡面有一段通訊協定假設,你把序列埠想像成 Tcp 差不多一樣道理。


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    • 已標示為解答 宙斯 2021年10月18日 上午 08:03
    2021年10月15日 下午 06:52
    版主
  • 感謝提示,

    看起來是定義一個Block,裡面包含Cmd與Data,然後Block的byte陣列再拿來轉回須要的欄位。

    與RS232設備通訊我還算熟悉,原本考慮的是如果想看設備即時回報的RAW data時,會須要比較快的更新速度所以在想有沒有什麼現成的作法是效率較高的。

    再想想一次看一台設備的話即時資料也沒那麼多,幾秒更新一次可能也就夠了,只要下命令能即時回應就行了。

    感謝指導,我再想一下怎麼定義block欄位


    zeus

    2021年10月18日 上午 08:15
  • 只是存取資料的話,

    Client 用 HttpRequest

    Server 用 ASP.NET 

    即可。

    如果會 Web Service ,Server 用 Web Service ,Client 參照即可當成函數呼叫。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2021年10月18日 下午 12:53