Socket Programming
Structure Type: | Study unit |
---|---|
Code: | IITS3105 |
Type: | Optional obligatory / Professional Studies |
Curriculum: | IT 2016 / 2017 / 2018 / 2019 / 2020 / 2021 TT 2016 / 2017 / 2018 / 2019 / 2020 / 2021 |
Level: | Bachelor of Engineering |
Year of Study: | 3 (2018-2019 / 2019-2020 / 2020-2021 / 2021-2022 / 2022-2023 / 2023-2024) |
Credits: | 2 cr |
Responsible Teacher: | Gao, Chao |
Language of Instruction: | English |
Courses
Impl. | Group(s) | Study Time | Teacher(s) | Language | Enrolment |
---|---|---|---|---|---|
1 | I-TT-3N | 2018-10-22 – 2018-12-21 | Chao Gao | English | 2018-08-20 – 2018-09-17 |
2 | I-IT-3N | 2018-10-22 – 2018-12-21 | Chao Gao | English | 2018-08-20 – 2018-09-17 |
3 | I-TT-3N | 2019-10-21 – 2019-12-20 | Chao Gao | English | 2019-08-19 – 2019-09-09 |
4 | I-IT-3N | 2019-10-21 – 2019-12-20 | Chao Gao | English | 2019-08-19 – 2019-09-09 |
3001 | TT2018-3, TT2018-3A, TT2018-3B, TT2018-3C, TT2018-3D | 2020-10-19 – 2021-01-03 | Chao Gao | English | 2020-08-17 – 2020-09-11 |
3002 | IT2018-3, IT2018-3A, IT2018-3B, IT2018-3C, IT2018-3D | 2020-10-19 – 2021-01-03 | Chao Gao | English | 2020-08-17 – 2020-09-11 |
3005 | IT2019-3, IT2019-3A, IT2019-3B, IT2019-3C, IT2019-3D, TT2019-3, TT2019-3A, TT2019-3B | 2021-10-25 – 2022-01-02 | Chao Gao | English | 2021-08-01 – 2021-09-06 |
3009 | IT2020-3, IT2020-3A, IT2020-3B, IT2020-3C, TT2020-3, TT2020-3A, TT2020-3B, TT2020-3C | 2023-03-20 – 2023-04-29 | Chao Gao | English | 2022-12-01 – 2023-01-09 |
3011 | IT2021-3, IT2021-3A, IT2021-3B, IT2021-3C, IT2021-3D, TT2021-3, TT2021-3A, TT2021-3B, TT2021-3C, TT2021-3D | 2024-03-04 – 2024-04-30 | Chao Gao | English | 2023-12-01 – 2024-01-12 |
The descriptions shown below are for the academic year: 2023-2024
Learning Outcomes
After the course, the student should understand the basic idea of client-server communication, and she should be able to write basic server/client applications. The student should know the differences of connection-less and connection-oriented communication (i.e., UDP and TCP) for designing performance-oriented Internet communication applications. She should know the different types of sockets and she should know which type should be applied for their specific application. The student should know the relationship between sockets and application layer protocols. At a higher level, the student should know how to design synchronous and asynchronous server applications and be able to use certain IPC techniques.
Student's Workload
54 h, which contains 28 h of scheduled contact studies.
The assessment of student’s own learning 1 h is included in contact lessons.
Prerequisites / Recommended Optional Courses
Local Area Networks, Wide Area Networks, C Programming, Java Server Programming.
Contents
Client-server communication, connectionless and connection-oriented communication, TCP/UDP/RAW sockets, connecting and binding, performance analysis. The programming language is either C, Java or Python.
Recommended or Required Reading and Other Learning Resources/Tools
TCP/IP Sockets in Java, Second Edition: Practical Guide for Programmers (The Practical Guides) 2nd Edition by Kenneth L. Calvert, Michael J. Donahoo.
Mode of Delivery / Planned Learning Activities and Teaching Methods
Lectures and a project.
Assessment Criteria
Grade 5: The student is able to develop performance-oriented TCP/IP application combining different languages and platforms. He can handle synchronous (concurrent) server development by using different IPC methods. He is proficient in network data formatting. He is able to evaluate the performance of the applications using different network tools/utilities.
Grade 3: The student is able to develop different types of TCP/IP application such as TCP server / client, UDP server client, and RAW socket applications. He understands the data structure in protocol data unit (PDU).
Grade 1: The student understands basics of TCP/IP socket and can development simple socket applications.
Assessment Methods
An examination, a project, homework exercises.