这里介绍一下Linux进程间通信的socket方式---Local socket。这篇主要是介绍下SOCK_DGRAM方式的通信,即数据包的方式(与UDP类似),面向无连接。 这个代码是我刚开始学的时候写的,代码比较简单,适合初学,学习最快的方式就是直接拿源码修改、编译运行、调试。 创建服务端代码: int startServer() { int
tmpName);pSockAddr = (TSockAddr *)&unadr;/* 创建本地socket */sockFd = socket(AF_LOCAL, SOCK_DGRAM, 0);//数据包方式if ( sockFd <= 0){perror(
serv_unadr.sun_family = AF_UNIX;strcpy(serv_unadr.sun_path,UNIX_SOCKET_PATH); pSockAddr = (TSockAddr *)&serv_unadr;signal(SIGPIPE, SIG_IGN);/* 创建本地socket */sockFd =socket(AF_UNIX, SOCK_DGRAM,0);//数据包方式if( sockFd <=0) {perror("socket error");returnsockFd; }/* 绑定...
嵌入式Linux网络编程,网络基础,套接字socket(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW),IP地址,端口号,字节序,字节序转换函数,IP地址的转换,程序员大本营,技术文章内容聚合第一站。
SOCK_STREAM是数据流,一般为TCP/IP协议的编程; SOCK_DGRAM是数据包,一般为UDP协议的网络编程; UDP协议适用端口分别运行在同一台设备上的多个应用程序。 具有的特点为: (1)分组在发送后,可能无序地到达接收端; (2)分组可能丢失。若发生丢失,则不会采取任何补救措施,而且接收端不必知道有分组丢失; ...
SOCK_STREAM:这是一个套接字类型(Socket Type)常量,表示我们使用的是面向连接的、可靠的字节流。在TCP协议中,我们使用SOCK_STREAM类型的套接字。另一个常见的套接字类型是SOCK_DGRAM,表示无连接的、不可靠的数据报文,通常用于UDP协议。 socket(AF_INET, SOCK_STREAM, 0):...
SOCK_DGRAM(无连接的 UDP) SOCK_RAW(原始 IP 数据包) protocol:指定具体的传输层协议,可选: IPPROTO_TCP IPPTOTO_UDP 函数返回值: 成功:返回 Socket fd。 失败:返回 -1。 #include <sys/socket.h> int socket(int af, int type, int protocol); 示例: // 创建 TCP 套接字 int tcp_socket = socket...
实际上,除了 TCP/IP 外,还有很多其他类型的协议也都是通过 Socket 接口函数来用的,比如车载常见的 CAN:socket.socket(socket.AF_CAN, socket.SOCK_RAW, socket.CAN_RAW)、802.15.4(Lo-WPAN,这个似乎没有 Python 接口,这里给个 C 的):socket(PF_IEEE802154, SOCK_DGRAM, 0)、IPC 用的 Unix Domain Socket...
SOCK_DGRAM 这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用UDP来进行它的连接。 SOCK_SEQPACKET该协议是双线路的、可靠的连接,发送固定长度的数据包进行传输。必须把这个包完整的接受才能进行读取。 SOCK_RAW socket类型提供单一的网络访问,这个socket类型使用ICMP公共协议。(ping、traceroute使用该协议...
流式套接字(SOCK_STREAM) 流式的套接字可以提供可靠的、面向连接的通讯流。如果你通过流式套接字发送了顺序的数据:"1"、"2"。那么数据到达远程时候的顺序也是"1"、"2"。 面向连接的Socket工作流程 数据报套接字(SOCK_DGRAM) 数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是...