Wave changes
This commit is contained in:
31
Notes/20241213005156-socket_programming_in_c.org
Normal file
31
Notes/20241213005156-socket_programming_in_c.org
Normal file
@@ -0,0 +1,31 @@
|
||||
:PROPERTIES:
|
||||
:ID: efe0360d-8d81-4372-833d-ad58e67d17c6
|
||||
:END:
|
||||
#+title: socket_programming_in_c
|
||||
#+filetags: :networking:coding:notes:
|
||||
|
||||
From: [[https://www.linuxhowtos.org/C_C++/socket.htm][Web Link]]
|
||||
* Steps:
|
||||
The steps involved in establishing a socket on the client side are as follows:
|
||||
|
||||
1. Create a socket with the socket() system call
|
||||
2. Connect the socket to the address of the server using the connect() system call
|
||||
3. Send and receive data. There are a number of ways to do this, but the simplest is to use the read() and write() system calls.
|
||||
|
||||
The steps involved in establishing a socket on the server side are as follows:
|
||||
|
||||
1. Create a socket with the socket() system call
|
||||
2. Bind the socket to an address using the bind() system call. For a server socket on the Internet, an address consists of a port number on the host machine.
|
||||
3. Listen for connections with the listen() system call
|
||||
4. Accept a connection with the accept() system call. This call typically blocks until a client connects with the server.
|
||||
5. Send and receive data
|
||||
* Socket types:
|
||||
When you create a socket, you must specify the *address domain* and the *socket type*, the client and server can only communicate if they are of the same type and in the same domain.
|
||||
|
||||
The two most common address domains:
|
||||
- unix domain (they share common file system)
|
||||
- internet domain
|
||||
|
||||
The two most common socket types:
|
||||
- stream sockets (continuous stream of characters) - uses tcp
|
||||
- datagram sockets (reads the entire messages at once) - uses dp
|
||||
Reference in New Issue
Block a user