2017-10-20 278 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

我不知道它是否执行以及广播数据,但我一直在聊天应用程序和简单的消息,它确实做得很好。

相关问题