网络通信Socket套接字简单了解
网络中进程之间如何通信?
本地进程间的通信(IPC)有很多方式
- 消息传递(管道、FIFO、消息队列)
- 同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)
- 共享内存(匿名的和具名的)
- 远程过程调用(Solaris门和Sun RPC)
什么是Socket?
socket起源于Unix,而Unix/Linux的基本哲学之一就是“一切皆文件”,都可以用“打开Open” —> “读写Read/Write” —> “关闭Close” 模式来操作。
理解:Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读写I/O、打开、关闭)。
Socket的基本操作
既然Socket为“open-write/read/-close”模式的一种实现,那么socket就提供了这些操作相对应的函数接口。
以TCP为例。
socket()函数
1 | int socket(int domain, int type, int protocol); |
bind()函数
1 | int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); |
listen()、connect()函数
1 | int listen(int sockfd, int backlog); |
accept()函数
read()、write()函数等
close()函数
Socket中TCP的三次握手建立连接详解

Socket中TCP的四次握手建立连接详解

一个例子
服务器端代码:
1 | #include<stdio.h> |
客户端代码:
1 | #include<stdio.h> |