2017-10-20 60 views
2

Je suis nouveau sur Java et je voulais faire quelque chose de cool avec ça. J'ai eu l'idée de mettre en place un serveur local pour ma maison avec comme première étape. Je veux un serveur simple qui fonctionne sans Internet, que tous les appareils connectés à ma maison wifi peuvent voir.
À un stade ultérieur, je prévois de faire diverses choses avec, comme pour les débutants une simple application de chat. Ou un portail pour partager des fichiers entre mes appareils.
Et dans le produit final, je veux faire du streaming. Comme l'hôte joue une musique sur le serveur et tous les appareils connectés peuvent aller à la page et écouter la même musique complètement synchronisée. Ou diffusez une vidéo!Comment configurer un serveur local en Java pour le streaming? Besoin de suggestions

C'est juste une idée pour le moment, je sais que ce genre de choses peut prendre beaucoup de travail de recherche, mais étant nouveau, je suis vraiment confus par où commencer. J'ai juste besoin de suggestions/conseils si ce que je dis est possible, et que puis-je faire pour arriver là où je veux.

Merci d'avance! :)

+0

Vous trouverez peut-être que [certains outils conviennent mieux aux serveurs Web] (http://flask.pocoo.org/). Avec tout le respect que je vous dois, il pourrait être décourageant de s'attaquer à certains de ces problèmes avec Java pur. – rob

Répondre

3

C'est un long voyage si vous construisez à partir de zéro. Il y a beaucoup d'API que vous pouvez utiliser pour y parvenir très facilement. Mais, je vais juste vous expliquer à partir de très basiques et ensuite vous pouvez aller de l'avant et faire plus de recherches.

enter image description here

Il y a 3 concepts principaux pour parvenir à ce que vous dites:

  1. clients: Des choses qui envoie la demande à un serveur. Les dispositifs aiment le mobile, l'ordinateur portable etc.
  2. Serveur: Chose qui reçoit la demande du client et effectue un traitement et renvoie le résultat. Maintenant, dans la vie réelle serveur est juste un logiciel (peut être écrit dans de nombreux langages Java est l'un d'eux) qui fonctionne sur un ordinateur et écouter les clients demande sur une adresse IP + port (ip + port est comme une adresse pour le serveur) . C'est comme si je voulais vous envoyer une lettre, je devrais connaître votre adresse.
  3. Programmation de socket: La programmation de socket définit le protocole et le mécanisme par lesquels le client et le serveur peuvent communiquer. Dans l'image ci-dessus tous les liens sont faits en utilisant la programmation de socket. Thread dans l'image ci-dessus permettent la simultanéité donc pour l'image ci-dessus chaque client est comme un fil pour le serveur.

Dans votre cas, car vous souhaitez connecter votre client au serveur via le wifi. Votre architecture ressemblerait à ceci. Où WIFI transmet simplement votre requête au serveur et la réponse du serveur à votre client.

Maintenant que vous voulez réaliser différentes choses comme l'application et le chat en direct.

application Chat (https://www.codeproject.com/Articles/524120/A-Java-Chat-Application)

  1. Pour une application dans le chat, nous devons faire en sorte que le message que nous avons envoyé doit atteindre la destination.
  2. Pour permettre cette programmation à 100% de précision, vous disposez du protocole TCP.

le streaming d'application {Audio/Vidéo} (Live audio stream java)

  1. Pour l'application de streaming protocole TCP est non nécessaire à cause de deux raisons.
  2. Tout d'abord, nous sommes en fait ok que si un ou deux paquets sont perdus, vous pouvez donc voir quand l'utilisation de YouTube il y a quelques problèmes.
  3. Pour le streaming en ligne, le plus important est qu'il soit rapide et TCP est un protocole très lourd.
  4. C'est pourquoi la programmation Socket vous permettent également d'utiliser le protocole UDP qui est plus rapide que TCP mais ne fournit pas la garantie de ce message atteindra.

Ci-dessus est une très brève introduction en terme de profane. Pour mieux comprendre, vous devez lire sur la programmation de socket. Une fois, vous avez fait que vous pouvez faire au-dessus du projet. Cependant, si vous voyez ci-dessus le lien, vous pouvez faire votre projet mais vous ne comprendrez rien et plus important encore en cas d'échec, vous pouvez dépanner.

1

Bien sûr, vous pouvez faire ce que vous pensez, mais comme vous l'avez dit vous-même, il faudra beaucoup de RnD pour compléter les choses.

Je vais vous suggérer la façon de commencer serait d'abord d'identifier et de diviser votre travail en différents modules pour, par exemple. (Partage de fichiers, chat, magasin de musique, etc.)

Ensuite, pour chacun des modules, créez des petits cas d'utilisation, par ex. partage de fichiers:

  • afficher un contenu du répertoire
  • répertoire commutateur
  • créer de répertoire
  • fichier de téléchargement

..... et ainsi de suite.

Je suppose que vous avez connaissance des applications de programmation et web: p

de travail de développement de démarrage seulement après ci-dessus utilise des cas sont complets. Commencez par prendre un cas d'utilisation à la fois, par ex.

affichage

un contenu du répertoire

créer un servlet/jsp pour cela que puis déployer aller avec suivant jusqu'à ce que vous remplissez tous les usecases et modules.

0

C'est un projet très ambitieux pour quelqu'un de nouveau à Java. Je vous recommande de ne pas commencer par un serveur en premier, surtout un serveur en streaming. Commencez avec des choses élémentaires, apprenez-en plus sur les types de données, les classes et les objets, les structures de données, les collections, des choses comme ça. Apprenez à utiliser le débogueur, ne peut pas insister suffisamment sur l'importance de celui-ci. Une fois que vous vous sentez à l'aise avec ces concepts, vous passez sur des serveurs.D'ici là, vous aurez une meilleure compréhension de la langue et surtout comprendrez ce que Java vous dit lorsque vous regardez une trace de pile.

+0

Merci pour la suggestion. Je suis nouveau à Java mais j'ai de l'expérience avec C++. Donc saisir les concepts OOP de base était facile. J'ai terminé les bases, je crois. –

1

C'est un bon projet sur lequel travailler. Vous apprendrez beaucoup.

Peut-être une chose simple que vous pourriez faire pour commencer est de configurer un serveur pour diffuser des informations à l'aide d'une socket Web.

Vous pouvez trouver beaucoup plus sur Internet, mais voici quelques exemples:

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

Je ne sais pas si elle fonctionne bien diffusion de données, mais je travaille sur un application de chat et pour les messages simples, il fait vraiment bien le travail.