2013-05-16 25 views
-2

我在java中做了一個網絡時間協議(NTP)項目,我被要求讓至少3個客戶端連接到服務器,並獲得固定延遲和東西的時間。java中的NTP項目

我的問題是我怎樣才能讓服務器接受許多客戶......這是最簡單的方法?我可以用一個插座來做嗎?或者更簡單的做法是使用線程來做到這一點?

回答

1

不使用線程,您將阻止所有其他連接,直到您的對話與一個客戶端完成。你將不得不使用多線程。網上有很多很好的資源like this one

基本上,你會循環和每次你accept()並創建一個新的套接字,你可以創建一個新的線程來處理它,或者把它交給線程池。

+0

好的我會使用多線程,但你可以告訴我該怎麼處理套接字? – user2375278

+0

如果只有一個簡單的技巧或什麼... – user2375278

+0

這不是非常簡單,但它只需要一點點思考。基本上你有一個ServerSocket,它坐着並監聽連接。當它得到一個,你接受它,並返回一個套接字。然後,您可以使用緩衝的作家/讀者向他們寫信。請閱讀http://docs.oracle.com/javase/tutorial/networking/sockets/ – nook