首页 > 代码库 > Socket编程(1)

Socket编程(1)

socket定义

在Linux中的网络编程是通过socket接口来进行的。人们常说的socket是一种特殊的I/O接口,他也是一个文件描述符。socket是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。

每一个socket都用一个半相关描述{协议,本地地址,端口号}来表示;一个完整的套接字则用一个相关描述{协议、本地地址、本地端口、远程地址、远程端口}来表示。socket也有一个类似于打开文件的函数调用,该函数返回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过socket实现的。

socket类型

(1)流式socket

流式socket(SOCK_STREAM)。

流式套接字提供可靠的、面向连接的通信流,它使用TCP协议,从而保证了数据传输的正确性和顺序性

(2)数据报socket(SOCK_DGRAM)

数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议(UDP)

(3)原始socket

原始套接字允许底层协议如IP或ICMP进行直接访问,它功能强大但使用较为不方便,主要用于一些协议的开发。



Socket编程(1)