Socket规划(1)

时间:2024-09-12 13:36:02

socket定义

于Linux网络编程是通过socket进行的。

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

每个socket都用一个半相关描写叙述{协议,本地地址,port号}来表示;一个完整的套接字则用一个相关描写叙述{协议、本地地址、本地port、远程地址、远程port}来表示。

socket也有一个类似于打开文件的函数调用,该函数返回一个整型的socket描写叙述符。随后的连接建立、传输数据等操作都是通过socket实现的。

socket类型

(1)流式socket

流式socket(SOCK_STREAM)。

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

(2)数据报socket(SOCK_DGRAM)

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

(3)原始socket

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

版权声明:本文博主原创文章,博客,未经同意不得转载。