[問題] 網路程式 wait to read client msg

看板java作者 (非天夜翔)時間16年前 (2010/02/12 13:43), 編輯推噓3(3012)
留言15則, 6人參與, 最新討論串1/1
前言:   想要寫個網路遊戲,其中 server & client 都是自行開發,   連線方面採用 TCP 通訊。 目前的進度是:   server 只要在 client 連線就建立一個 Thread 與 client 作互動,   但是在 client 沒有任何 input 的話, Thread 就會一直等候 message。 目標:   想要由一個 Thread 處理多個連線傳入的訊息,   因為如果連線量多的話, Thread 會建立非常多個, 會造成 server 過度的負荷,甚自因此 crash,   因此想以上述的目標改進這個缺陷, 想請教的是:   如何讓 Thread A 在限定等候訊息的時間,比方說等候 250 ms,   在沒有訊息傳入時,切換到另一個連線為他服務, 循環性的讀取(A→B→C→D→A→B....), 當讀取到訊息時,會交由其他 Thread (not A)處理, 而 A 繼續做讀取的動作。 謝謝各位大大認真的看完,感謝。 謝謝指教。 m(_@_)m -- ""是"喜歡"的累積! "喜歡"是"感覺"的累積! "感覺"是"緣份"的累積! "緣份"是"前世"的累積! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.9.2

02/12 13:50, , 1F
就是working queue啊 , 不過相對的等待也要比較久...
02/12 13:50, 1F

02/12 14:41, , 2F
要不要直接改 non blocking socket 比較快 :P
02/12 14:41, 2F

02/12 14:55, , 3F
T大可以說明白一點嗎???不是很懂說QQ"
02/12 14:55, 3F

02/12 14:56, , 4F
q大你是只用 UDP ???
02/12 14:56, 4F

02/12 16:31, , 5F
NIO, channel, selector
02/12 16:31, 5F

02/12 17:57, , 6F
我之前的寫法是傻傻的寫一個timer client0.5秒自動斷線
02/12 17:57, 6F

02/12 21:28, , 7F
謝謝 sb 大提供的意見,我朝這個方向試試看。
02/12 21:28, 7F

02/12 21:45, , 8F
sl大,因為我需要 client 保持連線狀態,所以沒法適用,thx
02/12 21:45, 8F

02/12 21:59, , 9F
為什麼你覺得我只用 UDP !?
02/12 21:59, 9F

02/12 22:34, , 10F
q大請開釋一下吧 想對這議題多點了解 lmgtfy不到結果(羞)
02/12 22:34, 10F


02/13 01:25, , 12F
q大抱歉誤會了,原本是要打"是指用UDP"結果沒注意到打錯字
02/13 01:25, 12F

02/13 01:37, , 13F
謝謝 q 大提供的意見,我也會在這個地方試試看。 m(_@_)m
02/13 01:37, 13F

02/13 09:39, , 14F
囧, 別再大來再去了. 只是剛 好寫過罷了..
02/13 09:39, 14F

02/13 17:18, , 15F
要做同步協調呀 @@~ 之前做專題只草草的限制連線數而已...
02/13 17:18, 15F
文章代碼(AID): #1BTEg7Jr (java)