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