Socket programming is first of all a means of boosting ego among the geeks and nerds who know it.
There's two type of programmers, one who have done socket programming and one who have not.
You may learn socket through the discounted links below, I teach two courses about socket programming on Udemy.
Aside from this difference, the term "socket" is referred to a software level construct which can be used to access a computer network. The term "access" encompasses two things:
- A computer reading data from the network sent by another computer
- A computer writing data to the network with an intent of sending it to another computer
When we send a message over a computer network using app like Whatsapp, it appears simple. But there's a lot of complexity going on underneath it. Even the programmers need to be shielded from the radiation of things like OSI model and BGP. That's where sockets come in. Let me give you the a simple definition of a socket.
A socket is a type of variable you can create in a high level programming level such as C#, Java, or C++. Once you have the socket in place, you can send and receive data over the computer network using it.
We can say that a socket is like an abstraction, it hides a lot of complexity under it and lets the coders write code which results in transmitting their data through WiFi, Ethernet, or any other means.
Sockets are often exposed through various APIs.
A few examples of sockets APIs are given below along with their mother languages.
- Java - java.net.*
- C# - System.Net.*
- C++ - socket.h
Windows provides an implementation of sockets through WinSock2 API. This is in turn used by runtimes like JVM and CLR.
You don't need to learn C to work on this course.
Socket Java, python socket udp