Skriv ut som pdf om du vill ha en pdf! Om du vill ha en snyggare utskrift, klicka bort webbläsarens automatiskt tillagda sidhuvud och sidfot.
Blekinge Tekniska Högskola
Institutionen för datavetenskap
Revision: 1
Dnr: BTH-4-1-14-0211-2025
Socketprogrammering i C/C++ för internettillämpningar
Socket Programming in C/C++ for Internet Applications
7,5 högskolepoäng (7.5 credits)
Kurskod: DV1728
Huvudområde: Datavetenskap
Utbildningsområde: Tekniska området
Utbildningsnivå: Grundnivå
Fördjupning: G1F - Grundnivå, har mindre än 60 hp kurs/er på grundnivå som förkunskapskrav
Undervisningsspråk: Engelska
Gäller från: 2025-03-13
Fastställd: 2025-03-13
Denna kurs är inrättad av dekan 2024-11-06. Kursplanen är fastställd av prefekten vid institutionen för datavetenskap 2025-03-13 och gäller från 2025-03-13.
För tillträde till kursen krävs 6 avklarade hp i C-programmering alternativt 12 avklarade hp i annat programmeringsspråk.
Syftet med kursen är att studenterna ska få
- Grundläggande förståelse om hur Internet fungerar, och hur sockets (POSIX) kan användas för att kommunicera över ett IP-nätverk.
- Förståelse hur klient- och serverapplikationer kan designas och implementeras, med focus på UDP och TCP som transportprotokoll.
- Förståelse för olika programmeringsmodeller, samt metoder för att hantera kommunikation till/från system som ligger bakom Nätverksadressöversättning (NAT).
Följande lärandemål examineras i kursen:
Efter genomförd kurs ska studenten kunna:
Efter genomförd kurs ska studenten kunna:
Kursen använder sig av föreläsningar, seminarier och övningsuppgifter. Den börjar med en kort presentation av internetprotokollet och Ethernet.
Därefter följer en genomgång av UDP-kommunikation och TCP-kommunikation, för både klient- och serverperspektiv. När grunderna är avklarade tittar vi på problematiken som uppstår när vi har flera användare samtidigt, både för UDP och TCP. Studenterna arbetar med små övningsuppgifter på alla dessa delar.
Sedan tittar vi på HTTP, SSL och HTTPS, och utmaningarna att implementera detta på klientsidan. I samband med det blir det också en genomgång av NAT och hur detta kan skapa en kommunikationsutmaning.
Till respektive område finns det examinerande inlämningsuppgifter som kräver att studenten kan tolka, designa och implementera lösningar som uppfyller uppgifternas krav. Inlämningsuppgifterna består av två delar, en källkodsdel och en reflektionsdel. Vid behov kan även en inlämning kompletteras med en diskussion där studenten får förklara och motivera sin källkod.
Examinationsmoment för kursen
Kod | Benämning | Omf. | Betyg |
2511 | Inlämningsuppgift 1 | 2 hp | GU |
2521 | Inlämningsuppgift 2 | 2 hp | GU |
2531 | Inlämningsuppgift 3 | 2 hp | GU |
2541 | Inlämningsuppgift 4 | 1,5 hp | GU |
Kursen bedöms med betygen G Godkänd, UX Underkänd, något mer arbete krävs, U Underkänd.
Examinator har möjlighet att muntligen följa upp skriftliga examinationer.
I kurstillfällets information inför kursstart framgår i vilka examinationsmoment som kursens lärandemål examineras samt gällande bedömningsgrunder.
Examinator kan, efter samråd med högskolans FUNKA-samordnare, fatta beslut om anpassad examinationsform för att en student med varaktig funktionsvariation ska ges en likvärdig examination jämfört med en student utan funktionsvariation.
Kursvärdering ska göras i enlighet med BTH:s beslut om frågeställning i kursvärderingar och beslut om process för hantering och uppföljning av kursvärderingar.
Kursen kan ingå i examen men inte tillsammans med annan kurs vars innehåll, helt eller delvis, överensstämmer med innehållet i denna kurs.
Unix Network Programming, Volume 1 – The Sockets Networking API; W. Richard Stevens, Bill Fenner; Andrew M. Rudoff; Third Edition; ISBN 978-0-013-141155-5, 2003
Denna kurs ersätter kursen DV1619