跟我学编程22:进程之间进行通信 socket



管道,消息队列,共享内存,信号量和信号都是在同一台主机上进行进程间通信,

如果想要跨网络和不同主机上的进程进行通信,则需要用到socket

实际上,Socket不仅可以跨网络和不同主机进行进程间通信,

还可以在同一主机进行进程间通信。

Socket是操作系统提供给程序员操作网络的接口,根据底层不同的实现方式,

通信方式也不同。


tcp Socket

服务端和客户端初始化Socket,得到文件描述符(第一次初始化Socket是用来监听的)

服务端调用bind,绑定IP和端口

服务端调用listen,进行监听

服务端调用accept,等待客户端连接

客户端调用connect,向服务端发起连接请求。(TCP三次握手)

服务端调用accept返回用于传输的Socket的文件描述符(和第一点得到的Socket不同)

客户端使用write写入数据,服务端调用read读取数据

客户端断开连接时会调用close,服务端也会调用close(TCP四次挥手)

[看]

我是广大劳苦大众当中的一员,我能帮忙人民克服一点困难,是最幸福的。

原文链接:,转发请注明来源!