請教您關於SocketServer->ClientRead event 同時觸發的問題. |
|
davidsun
初階會員 ![]() ![]() 發表:57 回覆:71 積分:25 註冊:2002-04-14 發送簡訊給我 |
大家好, 在下在使用 Delphi 的 TSocketServer 寫 TCP Server 程式時,有一點問題想請教,一般如果收到 Client 的資料,會觸發 Server 的 ClientRead event . 其中我們就可以根據 Client 送回的資料或者溝通好的命令來做一些處理,但是在尚未處理完成前,如果有另一個 Client 也送出資料,也觸發了 ClientRead Event ,但是之前的 Event 尚未處理完,那這樣是不是會出問題呢?如果是,該要如何避免呢?謝謝您的指教
|
領航天使
站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 大家好, 在下在使用 Delphi 的 TSocketServer 寫 TCP Server 程式時,有一點問題想請教,一般如果收到 Client 的資料,會觸發 Server 的 ClientRead event . 其中我們就可以根據 Client 送回的資料或者溝通好的命令來做一些處理,但是在尚未處理完成前,如果有另一個 Client 也送出資料,也觸發了 ClientRead Event ,但是之前的 Event 尚未處理完,那這樣是不是會出問題呢?如果是,該要如何避免呢?謝謝您的指教會出問題! 您必需在onClientRead 的事件中,將資料存入Queue中, 另外由Timer去一一讀出處理! 這樣懂嗎? ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
davidsun
初階會員 ![]() ![]() 發表:57 回覆:71 積分:25 註冊:2002-04-14 發送簡訊給我 |
引言:的確會出問題,我在想,如果我用 Thread 的方式,每一個 Client 的 Connection 都有自己的 Thread ,是不是就可以避免這樣的問題呢?因為 Delph 的 TSocketServer 的 Type ,內定值是 NonBlock,也就是所有的 Client 都共用一個 Thread,如果用 ThreadBlock ,就是每一個 Client 都有自己的 Thread,但是向這樣的應用範例,似乎是很難找到,內附的 Demo 相單簡單,請問我如何或者在何處可以找到更進一步的資料呢?謝謝您。引言: 大家好, 在下在使用 Delphi 的 TSocketServer 寫 TCP Server 程式時,有一點問題想請教,一般如果收到 Client 的資料,會觸發 Server 的 ClientRead event . 其中我們就可以根據 Client 送回的資料或者溝通好的命令來做一些處理,但是在尚未處理完成前,如果有另一個 Client 也送出資料,也觸發了 ClientRead Event ,但是之前的 Event 尚未處理完,那這樣是不是會出問題呢?如果是,該要如何避免呢?謝謝您的指教會出問題! 您必需在onClientRead 的事件中,將資料存入Queue中, 另外由Timer去一一讀出處理! 這樣懂嗎? ~~~Delphi K.Top討論區站長~~~ |
領航天使
站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 的確會出問題,我在想,如果我用 Thread 的方式,每一個 Client 的 Connection 都有自己的 Thread ,是不是就可以避免這樣的問題呢?因為 Delph 的 TSocketServer 的 Type ,內定值是 NonBlock,也就是所有的 Client 都共用一個 Thread,如果用 ThreadBlock ,就是每一個 Client 都有自己的 Thread,但是向這樣的應用範例,似乎是很難找到,內附的 Demo 相單簡單,請問我如何或者在何處可以找到更進一步的資料呢?謝謝您。Thread應是很好的解決辦法,您可先參考本站的Thread範例! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
天外來客
初階會員 ![]() ![]() 發表:22 回覆:199 積分:44 註冊:2001-11-27 發送簡訊給我 |
|
monkey66
一般會員 ![]() ![]() 發表:1 回覆:6 積分:6 註冊:2002-06-19 發送簡訊給我 |
|
crazyhuman
一般會員 ![]() ![]() 發表:13 回覆:13 積分:5 註冊:2003-03-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |