2017-10-20 277 views
2

我是Java的新手,我想用它做一些很酷的事情。作爲第一步,我想出了爲我的家建立本地服務器的想法。我想要一個簡單的服務器在沒有互聯網的情況下運行,所有連接到家庭WiFi的設備都可以查看。
在稍後的階段,我打算用它做各種各樣的東西,比如初學者一個簡單的聊天應用程序。或者在我的設備之間共享文件的門戶。
而在最終產品中,我想做流式傳輸。就像主機在服務器上播放音樂一樣,所有連接的設備都可以進入該頁面並聽完完全同步的相同音樂。或流式傳輸視頻!如何在Java中設置用於流式傳輸的本地服務器?需要建議

這只是一個想法,我知道這種東西可能需要大量的研究工作,但是新的我真的很困惑從哪裏開始。如果我說的是可能的,我只需要建議/指導,我可以做些什麼來達到我想要的地方。

在此先感謝! :)

+0

你可能會發現有[某些工具更適合網絡服務器](http://flask.pocoo.org/)。無論如何,用純Java來解決某些問題可能會讓人感到灰心。 – rob

回答

3

如果你是從頭開始建設,這是一段漫長的旅程。有很多API可以用來很容易地實現這一點。但是,我只是從非常基礎的角度來解釋你,然後你可以繼續前進並做更多的研究。

enter image description here

有實現你說的話3個主要概念:

  1. 客戶:事發請求到服務器。移動設備,筆記本電腦等設備
  2. 服務器:件事從客戶端接收請求,並做一些處理並返回結果返回。在現實生活中,服務器只是一個軟件程序(可以用多種語言編寫,Java就是其中之一),它在計算機上運行,​​並通過IP地址+端口監聽客戶端請求(IP +端口就像服務器的地址) 。這就好像我想給你發信一樣,我應該知道你的地址。
  3. 套接字編程:套接字編程定義了客戶端和服務器可以通信的協議和機制。在上面的圖片中,所有鏈接都是使用套接字編程創建的上圖中的線程允許併發性,因此對於上面的圖像,每個客戶端就像服務器的線程。

在你的情況,因爲你要通過wifi到您的客戶端連接到服務器。你的架構看起來像這樣。

Client     
Client ------------------- WIFI ---------------- SERVER 
: 
: 

其中WIFI只是轉發您的請求到服務器和從服務器到客戶端的響應。

現在,只要你想達到像聊天應用和流媒體直播不同的東西。

的聊天應用(https://www.codeproject.com/Articles/524120/A-Java-Chat-Application

  1. 聊天應用程序,我們必須確保我們發出的信息必須到達目的地。
  2. 爲了讓這個100%準確的套接字編程爲您提供TCP協議。

流應用{音頻/視頻}(Live audio stream java

  1. 對於流應用TCP協議時並不需要,因爲兩個原因。
  2. 首先,我們其實都OK,如果一個或兩個包都因此失去了你可以使用YouTube也有一些小問題的時候看到的。
  3. 在線播放最重要的是它應該是快速和TCP是一個非常沉重的協議。
  4. 這就是爲什麼Socket編程還允許您使用UDP協議,它是那麼快,但TCP不提供保證消息會達到。

以上是外行人員非常簡短的介紹。爲了更好的理解你必須閱讀關於Socket編程。有一次,你做了 ,你可以在項目上面做。但是,如果你看到上面的鏈接,你可以 做你的項目,但你不會理解任何東西,更重要的是 萬一你可以排除故障。

1

當然,你可以做你在想什麼,然而正如你自己說的那樣,它會需要很多RnD才能完成。

我建議你開始的方法是首先確定你的工作並將其分成不同的模塊, (文件共享,聊天,音樂商店等)

然後,對於每個模塊創建小的使用情況例如 文件共享:

  • 顯示目錄內容
  • 開關目錄
  • 創建目錄
  • 下載文件

.....等等。

我以爲你的編程和網絡應用知識:對

開始開發工作後,才使用上述案件均已完成。從一次使用一個用例開始,例如

顯示目錄內容

創建一個servlet/JSP對於部署,然後再與下一個,直到你完成所有的usecases和模塊。

0

這是一個非常雄心勃勃的項目,適用於Java新手。我建議你不要先從服務器開始,尤其是流媒體服務器。從基本的東西開始,瞭解數據類型,類和對象,數據結構,集合等等。學會使用調試器,不能強調該調試器的重要性。一旦你對這些概念感到滿意,那麼你就轉向服務器。屆時您將更好地掌握語言,最重要的是,您將瞭解Java在查看堆棧跟蹤時所告訴您的內容。

+0

感謝您的建議。我是Java的新手,但我有使用C++的經驗。因此,抓住基本的OOP概念很容易。我相信,我已經完成了基礎知識。 –

1

這是一個很好的項目。你會學到很多。

也許你可以做的一件簡單的事情就是設置一個服務器來使用web套接字廣播信息。

你可以找到更多的互聯網上,但這裏有一些例子:

http://www.baeldung.com/java-websockets http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html

我不知道它是否執行以及廣播數據,但我一直在聊天應用程序和簡單的消息,它確實做得很好。

相關問題