以前我们讲过进程间通信,通过进程间通信可以实现同一台计算机上不同的进程之间通信。
通过网络编程可以实现在网络中的各个计算机之间的通信。
进程能够使用套接字实现和其他进程或者其他计算机通信。
同样的套接字既可以实现进程间通信,也可以实现计算机之间通信。
套接字是通信端点的抽象。
与文件描述符一样,套接字需要使用套接字描述符。
套接字在Linux上也是通过文件实现的,所以传统的write和read同样适用于套接字。
当服务器和应用程序需要和其他进程通信的时候就会使用套接字。
一对对接的套接字接口构成了进程间交流数据的一个通道。
这些进程可能是windows或者linux以及ios,android都可以互相通信。
通信域用来说明套接字接口通信协议的语义。
每个域都定义了一套协议、控制和解释名字规则,以及套接口的地址格式。
对于internet域来讲,套接字地址格式是一个IP地址和端口号。
internet域套接字用于连网通信,他们可以用在几乎任何支持TCP/IP的网络通信程序上。
tcp使用过程
client端,主动连接方叫client.
server端,被动接收方叫server。
1、TCP先连接(三次握手机制--详情参考“网络编程详解八”)2、连接通了,双方可以互相收发消息。
3、断开连接
client>server:FIN 消息号m
server>client:ack m+1
server>client:FIN 服务端编号n
client>server:ack n+1