文章预览
我们知道,Linux/UNIX系统的精妙设计之一就是,一切软硬件设备都是文件,包括文档、 调制解调器、磁盘驱动器、键盘、打印机、显示器等。这种设计范式为所有设备的操作提供了一个统一的抽象方式。既然在Linux/UNIX上一切对象是文件,那么对于它们任何I/O操作,则可以使用文件描述符来完成。 今天我们来谈一谈 UNIX 中的网络通信接口 Socket (套接字),本质上 Socket 也是一种文件,是对网络中进程之间通信的端点的抽象。因此,使用 Socket 的文件描述符进行 I/O 操作,则可以通过网络连接与其他机器上的进程实现通讯。 其中,Socket 根据通信方式的不同,主要可以分为稳定可靠、面向连接的 流式套接字(SOCK_STREAM) 与简单快速、无连接的 数据报套接字 ( SOCK_DGRAM) 。在C/S架构中,使用面向连接的 流式套接字 进行网络通信时,服务器与客户机需要
………………………………