normaal gesproken draait een server op een specifieke computer en heeft een socket die is gebonden aan een specifiek poortnummer. De server wacht gewoon, luisterend naar de socket voor een client om een verbindingsaanvraag te doen.
aan de client-kant: de client kent de hostnaam van de machine waarop de server draait en het poortnummer waarop de server luistert. Om een verbindingsaanvraag te doen, probeert de client een rendez-vous te maken met de server op de machine en poort van de server., De client moet zich ook identificeren met de server, zodat hij zich bindt aan een lokaal poortnummer dat hij tijdens deze verbinding zal gebruiken. Dit wordt meestal toegewezen door het systeem.
als alles goed gaat, accepteert de server de verbinding. Na acceptatie krijgt de server een nieuwe socket gebonden aan dezelfde lokale poort en heeft ook zijn externe eindpunt ingesteld op het adres en de poort van de client., Het heeft een nieuwe socket nodig, zodat het kan blijven luisteren naar de oorspronkelijke socket voor verbindingsaanvragen, terwijl de neiging om de behoeften van de verbonden client.
aan de clientzijde wordt een socket met succes aangemaakt en kan de client de socket gebruiken om met de server te communiceren.
de client en de server kunnen nu communiceren door naar hun sockets te schrijven of te lezen.,
een socket is een eindpunt van een tweeweg communicatieverbinding tussen twee programma ‘ s die op het netwerk draaien. Een socket is gebonden aan een poortnummer, zodat de TCP-laag de toepassing kan identificeren waarnaar gegevens moeten worden verzonden.
een eindpunt is een combinatie van een IP-adres en een poortnummer. Elke TCP-verbinding kan uniek worden geïdentificeerd door de twee eindpunten. Op die manier kun je meerdere verbindingen hebben tussen je host en de server.,
hetjava.net
pakket in het Java platform biedt een klasse,Socket
, die een kant van een tweerichtingsverbinding tussen uw Java-programma en een ander programma op het netwerk implementeert. DeSocket
klasse zit bovenop een platform-afhankelijke implementatie, het verbergen van de details van een bepaald systeem van uw Java-programma. Door de klasse java.net.Socket
te gebruiken in plaats van te vertrouwen op native code, kunnen uw Java-programma ‘ s communiceren over het netwerk op een platformonafhankelijke manier.,
daarnaast bevat java.net
de klasse ServerSocket
, die een socket implementeert die servers kunnen gebruiken om verbindingen naar clients te luisteren en te accepteren. Deze les laat u zien hoe u de Socket
en ServerSocket
klassen gebruikt.
Als u probeert verbinding te maken met het Web, zijn de URL
klasse en gerelateerde klassen (URLConnection
, URLEncoder
) waarschijnlijk meer geschikt dan de socket klassen., In feite, URL ‘ s zijn een relatief high-level verbinding met het Web en gebruik sockets als onderdeel van de onderliggende implementatie. Zie werken met URL ’s voor informatie over verbinding maken met het Web via URL’ s.