SOCK_STREAM 表示创建一个面向连接的套接字,即 TCP 套接字。 IPPROTO_TCP 指定使用 TCP 协议。使用场景: 该函数通常在需要建立 TCP 连接的网络编程中使用,例如编写 TCP 客户端或服务器时。 在客户端,它用于创建一个套接字,然后通过这个套接字向服务器发起连接请求。 在服务器端,它用于创建一个监听套接字,...
SOCK_STREAM是基于TCP的,数据传输比较有保障 SOCK_STREAM 是数据流,一般是tcp/ip协议的编程 SOCK_DGRAM分是数据抱,是udp协议网络编程 SOCK_DGRAM是基于UDP的,专门用于局域网,基于广播 新套接口的类型描述类型,如TCP(SOCK_STREAM)和UDP(SOCK_DGRAM)。 常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_...
其中SOCK_STREAM (TCP)、SOCK_DGRAM (UDP) 工作在传输层,SOCK_RAW 工作在网络层。 SOCK_RAW 可以处理ICMP、IGMP等网络报文、特殊的IPv4报文、可以通过IP_HDRINCL套接字选项由用户构造IP头。
//See: https://linux.die.net/man/7/ip//AF ="Address Family"//INET ="Internet"//AF_INET = IPv4 internet protocols//AF_INET6 = IPv6 internet protocols; see: https://linux.die.net/man/2/socket//DGRAM ="Datagram"(UDP)///IPv4#define SOCKET_TYPE_TCP_IPV4 AF_INET, SOCK_STREAM, 0...
流格式套接字(Stream Sockets)就是“面向连接的套接字”,它基于 TCP 协议;数据报格式套接字(Datagram Sockets)就是“无连接的套接字”,它基于 UDP 协议。 这给大家造成一种印象,面向连接就是可靠的通信,无连接就是不可靠的通信,实际情况是这样吗?
SOCK_STREAM 数据流 一般是tcp/ip协议的编程 有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,...
流式套接字(SOCK_STREAM):基于TCP协议,提供可靠的、双向的、基于连接的通信。 数据报套接字(SOCK_DGRAM):基于UDP协议,提供不可靠的、无连接的通信。 原始套接字(SOCK_RAW):允许直接访问IP层,通常用于实现自定义的协议。 应用场景 Web服务器和客户端:使用HTTP协议进行通信。 实时通信应用:如在线游戏、视频会议,...
UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不会丢失也不会顺序错乱。 UNIX Domain Socket可用于两个没有亲缘关系的进程,是全双工的,是目前使用最广泛的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的。
AF_INET 代表TCP/IP协议第二个参数:SOCKET类型第三个参数:协议类型,参数值为IPPROTO_xxx 的常量,在<netinet/in.h>中可以看到相关协议的类型:/usr/include/netinet/in.h如果指定协议为0时,原始套接字可以接收内核传递给原始套接字的任何IP数据包,且只有超级用户才可以创建原始套接字。