none
Socket 疑問 RRS feed

  • 問題

  • 各位前輩好 

         我有一隻 vb  我的目標是 60台的設備

         同時間會約 120ms 會去跟設備撈一次資料

         量小還好  但是 量大的時候(大約 40台) 常常Socket 會斷線 回報對方沒有回應

         請問這個問題 我應該要由哪個方向著手呢

         因為我是個別 走個別的 thread 但是 他斷線的話 是所有的 Thread 內的 Socket 都一起回報無回應 @@

          感恩

       

    2020年8月4日 上午 05:23

解答

  • 不確定。

    你用其他程式對一般持續性連線的服務做連結,當你第三方程式一起斷線時,看看你的其他程式是否正常,正常就不會是 Switch 的問題。

    一般公司用的 Switch 背板頻寬都夠,微處理器的能力也能應付,通常對設備通訊大概每秒都在 1kb 以內,就算 100 裝置也不到 1MB ,遠低於一般網路設備的上限。


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

    • 已標示為解答 Luoco 2020年8月5日 下午 07:37
    2020年8月5日 下午 04:37

所有回覆

  • 你的 VB 是 Client ,設備是 Server ?

    大部分的設備微處理器沒辦法接受過多的連線數,建議先向設備硬體商確認硬體規格。此外,很多設備 Socket Close 處理不好,很容易發生占用情形,建議先確認設備硬體許可範圍,確認廠商自己有沒有測過。


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

    2020年8月4日 下午 12:11
  • 心冷前輩您好

    我的設備最高為 4 個 Client 現在是剛好用滿的狀態

    我自己實際測試他確實也是可以達到 4 個 Client 最高可以用 70ms 去對他讀寫這樣

    2020年8月4日 下午 01:03
  • 你做完 Connect 讀取完資料後,是 DisConnect 還是 Keep ?

    如果是 DisConnect ,要確認設備的 Socket Close Timeout 會拖多久。

    你可以先用軟體卡住 3 個連線不放後,再做 Connect / disconnect 的壓力測試。


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

    2020年8月5日 下午 12:31
  • 心冷前輩您好

    我是在 Thread  Loop 迴圈內 

    sleep (120ms) 左右的就馬上讀下一筆

    所以沒有中斷並且在連線@@

    他自已會斷線會出現  對方沒有回應

    不過後來 我有稍微解決這個問題

    我把針對每一台的速度做不同的速度調配

    例如 第一台 sleep 1000  第二台 Sleep (500)

    不要同時間 一次幾十台都發送就沒問題

    不過 我有用其他第三方軟體同時監測  

    我的程式同時運作 與第三方一起運作

    斷線時 第三方也會斷線@@

    所以這個有可能跟 HUB有關係嗎?

    2020年8月5日 下午 03:15
  • 不確定。

    你用其他程式對一般持續性連線的服務做連結,當你第三方程式一起斷線時,看看你的其他程式是否正常,正常就不會是 Switch 的問題。

    一般公司用的 Switch 背板頻寬都夠,微處理器的能力也能應付,通常對設備通訊大概每秒都在 1kb 以內,就算 100 裝置也不到 1MB ,遠低於一般網路設備的上限。


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

    • 已標示為解答 Luoco 2020年8月5日 下午 07:37
    2020年8月5日 下午 04:37
  • 心冷前輩您好

    好的 那我再研究看看

    感謝您的協助


    2020年8月5日 下午 07:37