Bevat een overzicht EN vertaling van alle Powerpoints. Is gemaakt in het studiejaar .
Geen tijd en/of zin om zelf een samenvatting te maken? Geen probleem I GOT U!
Alles is op een overzichtelijke manier gebundeld tot één geheel. Ik persoonlijk heb erg veel aan de samenvattingen. Heb ze ook...
Week 1 College 1 – Socket Programming
Sockets
Zowel TCP als UDP protocollen leven in de
Transport laag en voegen het concept van poorten
toe om applicaties die op een bepaalde host draaien
te onderscheiden.
TCP biedt verbindingen gebaseerde, betrouwbare
netwerkcommunicatie en op streams gebaseerde
gegevensleveringsservices. Betrouwbaarheid wordt
bereikt door hertransmissie van gedropte pakketten.
UDP biedt verbindingsloze en pakketgebaseerde
levering waarbij de gegevens worden geleverd in
datagrammen - pakketten met poortnummers.
Note: Presentation: compression/encryption (al kan
dat ook op andere lagen)
Python biedt 2 levels voor toegang tot netwerk services
Note: socket.gethostname()
Retourneert een tekenreeks met de
hostnaam van de machine waarop de
Python-interpreter momenteel wordt
uitgevoerd. Sockets maken
communicatie tussen twee
verschillende processen op dezelfde
of verschillende machines mogelijk.
Om preciezer te zijn, het is een manier
om met andere computers te praten
met behulp van standaard Unix-
bestandsdescriptors. In Unix wordt
elke I/O-actie gedaan door een
bestandsdescriptor te schrijven of te
Higher level: Gebruik modules. lezen. Een bestandsdescriptor is
gewoon een geheel getal dat is
gekoppeld aan een geopend bestand
en het kan een netwerkverbinding,
een tekstbestand, een terminal of iets
anders zijn.
Voor een programmeur ziet en
gedraagt een socket zich net als een
bestandsdescriptor op laag niveau. Dit
komt omdat commando's zoals read()
en write() met sockets op dezelfde
manier werken als met bestanden en
pipes.
, BSD sockets
BSD Sockets is een API voor de
transportlaag van het Internet Protocol
Stack.
Het ondersteunt het maken van zowel
TCP- als UDP-netwerk-I/O.
Note: De client maakt verbinding met
de server door socket() aan te roepen
en vervolgens connect() met een
socketadres dat het IP-adres en de TCP-
poort bevat die worden gebruikt voor
de bind()-aanroep op de server. Op de
server keert de accept()functie terug
met een aansluitsocketbeschrijving
wanneer het verbindingsverzoek van de
client wordt ontvangen.
Na het verbinden van de serverblokken
Socket Programming in Python(Creëer je eigen netwerk service) op een oproep naar read() wachtend op
een clientverzoek. De client roept
write() aan om een verzoek te
verzenden en blokkeert vervolgens een
aanroep om read() te wachten op het
antwoord van de server. Wanneer de
server klaar is met het verwerken van
het verzoek, stuurt deze een antwoord
terug naar de client. De uitwisseling van
verzoeken en antwoorden wordt
herhaald totdat de client klaar is,
waarna de verbinding wordt verbroken.
De server detecteert deze gebeurtenis
wanneer read() 0 retourneert. De server
reageert door het einde van de
verbinding te sluiten en vervolgens
terug te keren om een andere
verbinding te krijgen.
In de meeste servers worden
Note: nc64 verbindingen in één thread
geaccepteerd en wordt een nieuwe
thread of proces gemaakt om elke
verbinding af te handelen. Om de zaken
eenvoudig te houden, beschrijft het
voorbeeld hier een iteratieve server
waar elk verzoek één voor één wordt
afgehandeld.
Read() / write() Staat in python: send()
recv()
Note;
str.encode(), die een bytes-representatie van de Unicode-
tekenreeks retourneert, gecodeerd in de gevraagde codering.
, Encoding
In Python 3 zijn alle strings Unicode. Dus als een tekstreeks over het netwerk moet worden verzonden, moet
deze worden gecodeerd.
Dit is de reden waarom de onderstaande server de encode('ascii') methode gebruikt voor de gegevens die
hij verzendt. Evenzo, wanneer een client netwerkgegevens ontvangt, worden die gegevens eerst ontvangen
als onbewerkte ongecodeerde bytes. Als u het afdrukt of probeert te verwerken als tekst, krijgen we
waarschijnlijk niet wat we verwachtten. In plaats daarvan moeten we het eerst decoderen. Dit is de reden
waarom de clientcode decode('ascii') gebruikt voor het resultaat.
Note: Het weergeven van een unicode-reeks als een reeks bytes staat bekend als codering.
Blocking (FYI only)
Het is mogelijk en vaak nodig om een socket op non-blocking te zetten. Dit betekent dat het programma niet
gaat zitten wachten op de ontvangst van gegevens.
Een socketobject kan zich in een van de drie modi bevinden: blokkerend, niet-blokkerend of time-out.
Sockets worden standaard altijd in de blokkeermodus gemaakt, maar dit kan worden gewijzigd.
UDP
Waar TCP een streamgeoriënteerd protocol is dat ervoor zorgt dat alle gegevens in de juiste volgorde
worden verzonden, is UDP een berichtgeoriënteerd protocol.
Echo UDP-client bijvoorbeeld:
Note: https://pymotw.com/3/socket/udp.html
, More information: https://pymotw.com/3/socket/index.html
Meer info!
https://docs.python.org/3/library/socket.html (all
details)
https://pythontips.com/2013/08/06/python-
socket-network-programming/
http://www.tutorialspoint.com/python/
python_networking.htm (simple to start with)
https://pymotw.com/2/socket/tcp.html (simple,
to start with)
2.1.3 Lesstof tentamen
Wat moet je weten voor het tentamen over dit onderwerp, dus hoe kan je je het beste voorbereiden?
• Leer alle informatie die je vindt in de powerpoint presentatie over dit onderwerp.
• Lees alle informatie die wordt aangeboden onder het kopje “Informatiebronnen”.
• Zorg dat je een fout kan halen uit de Python code waarin een eenvoudige TCP-server of TCP-client
wordt getoond.
• Zorg dat je zelf clients en servers hebt gemaakt zodat je getoonde code van anderen goed begrijpt en
kan aanpassen/verbeteren
2.1.4 Informatiebronnen
• Youtube: https://www.youtube.com/watch?v=XiVVYfgDolU
• Perfecte website voor allerlei modules, dus dit ook https://pymotw.com/2/socket/tcp.html
• Alle details, simpel http://www.tutorialspoint.com/python/python_networking.htm
• simpele voorbeelden, wat uitgebreidere uitleg https://pythontips.com/2013/08/06/python-socket-
network-programming/
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller tiktokafm. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $7.50. You're not tied to anything after your purchase.