Socket Programming in C
- having linux already installed on your computer,
- be comfortable with some basic commands in c(if you don't, its okay, we will explain)
- having some basic networking knowledge
- having some basic familiarity with c programming
in this course first we talk about some basic concepts in computer science, we talk about what programming languages are, what c programming language is, what are headers in c, and how we could include them using #include keyword,
what are system calls would be the next sections, after that we talk about tcp/ip stack ,and how different data and headers are added to the data in each layer , and we talk about ip protocol in specific, after that we talk about sockets, that what sockets are and what is their application.
we explain about how we could create sockets in c and after that we talk about structures in c, structs are some important concepts in c, therefore we would assign a separate lecture to it, also since we know linux is open source , so for everything we expect a source code, therefore we talk how we could browse all the c files in the linux , which the kernel is actually build based upon, so we will talk about how we could search through all of these files, after this lecture we get to the next section which is the main part of this course.
in this section first we talk about address structures , and sockaddr and also sockaddr_in, after that we explain about what endianness is , after that we talk about all the methods and functions which invoke system calls causing the creation of sockets, connection sockets to a server at the client side, binding sockets to address structures at the server side, sending data from server and receiving it at the client side.
Who this course is for:
- c programmers trying to go to next level
- network engineers trying to implement their applications in c
- security analysts trying to have go deeper in networking and socket programming
- 04:53programming languages
- 05:53headers in c
- 08:23system calls
- 09:20ip protocol
i have Master of Science in Electronics engineering . and for 10 years i have been studying computer science too. i have been teaching subjects like programming like python , networking concepts, cryptography , penetration testing in computer science and Analog Electronics, digital Electronics, Electrical circuits, data communication , CMOS integrated circuits , signals and systems and advanced mathematics for 4 years. i think we should learn computer science in high level first and then relate it to electronics concept by going deep in the lower level and then at last analyze them using mathematics concepts . that is why i dedicate most of my time studying these concepts to go deeper.