首页
学习
活动
专区
圈层
工具
发布

Linux下进程间通讯方式 - UNIX Domain Socket

概述 Linux下进程通讯方式有很多,比较典型的有套接字,平时比较常用的套接字是基于TCP/IP协议的,适用于两台不同主机上两个进程间通信, 通信之前需要指定IP地址....不会丢包也不会出现发送包的次序和接收包的次序不一致的问题 流程介绍 如果熟悉Socket的话,UDS也是同样的方式, 区别如下: UDS不需要IP和Port, 而是通过一个文件名来表示 domain 为 AF_UNIX...UDS中使用sockaddr_un表示 struct sockaddr_un { sa_family_t sun_family; /* AF_UNIX */ char sun_path...; strcpy(un.sun_path,filename); sock_fd = socket(AF_UNIX,SOCK_STREAM,0); if(sock_fd < 0){...return -1; } send(sock_fd,buffer,BUFFER_SIZE,0); close(sock_fd); return 0; } 参考 Linux

7.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    什么是计算机网络?为什么需要网络通信?如何进行网络编程?

    AF_UNIX(又名AF_LOCAL) UNIX 套接字是我们所讲的套接字的第一个家族,并且拥有一个“家族名字”AF_UNIX (又名AF_LOCAL,在POSIX1.g标准中指定),它代表地址家族(address...Python 只支持 AF_UNIX、AF_NETLINK、AF_TIPC 和 AF_INET 家族。...因为这些套接字(AF_INET)的网络版本使用因特网协议(IP)来搜寻网络中的主机,所以整个系统通常结合这两种协议(TCP 和 IP) 来进行(当然,也可以使用 TCP 和本地[非网络的 AF_LOCAL/AF_UNIX...通过命令可以查看本机的网卡信息: Linux输入:ifconfig Windows:ipconfig 每一个IP地址包含两个部分:网络地址和主机地址 A类:7位网络号+主机24位 B类:14位+16...知名端口:从0到1023 例如:88端口分配给http、21分配给FTP 动态端口:1024~65535 在Linux/Mac系统下,可以在/etc/services文件中找到系统预留端口号,包括服务器

    1.9K21

    Linux进程通信之Unix套接字(一)

    Linux进程通信之Unix套接字(一) 什么是套接字 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。...,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口 以上来自百度(实际则就是一种连接) 支持的协议 AF_INET(IPV4) AF_INET6(IPV6) AF_UNIX...35 * Email: 1769360227@qq.com */ $fd = []; //返回两个文件描述符用于读写 $fd[0] 读 $fd[1] 写 socket_create_pair(AF_UNIX...* Email: 1769360227@qq.com */ //服务端 $file = 'unix_socket'; //创建socket $socket = socket_create(AF_UNIX...17:34 * Email: 1769360227@qq.com */ $file = 'unix_socket'; //创建socket $socket = socket_create(AF_UNIX

    3.3K30

    利用套接字进行数据传输

    服务器端的步骤如下: 1. socket: 建立一个socket 2. bind: 将这个socket绑定在某个文件上(AF_UNIX)或某个端口上(AF_INET)...读取或发送数据到客户端 6. close: 通信完成后关闭socket 客户端的步骤如下: 1. socket: 建立一个socket 2. connect: 主动连接服务器端的某个文件(AF_UNIX...通信完成后关闭socket 具体实现: 服务器server 1.int socket(int domain, int type, int protocol) domain:指定socket所属的域,常用的是AF_UNIX...或AF_INET AF_UNIX表示以文件方式创建socket,AF_INET表示以端口方式创建socket type:指定socket的类型,可以是SOCK_STREAM或SOCK_DGRAM...表示UNP protocol:指定socket的协议类型,我们一般指定为0表示 socket()函数返回新创建的socket,出错则返回-1 socket属性: 常用的有两种socket域:AF_UNIX

    65130

    进程通信

    作为后一命令(grep mysql)输入, 管道传数据是单向,如相互通信,要两个 2、命名管道 FIFO $ mkfifo myPipe(名) 用前要mkfifo 命令创建,指定管道名,数据先进先出1) 基于“Linux...Linux 内核中有MSGMAX 和 MSGMNB 消息和队列最大长,字节为单位 三、共享内存 解决 用户态与内核间的 消息拷贝 1、内存管理: 进程有自己独立的 虚拟内存空间 , 不同进程 的 虚拟内存...ps: 跟信号量虽然名字相似,用途完全不一样 1、Linux 操作系统, 为响应各种各样事件,提供几十种信号, kill -l 命令,查看所有 2、 给进程发送信号终端 输入组合键: Ctrl+C 产生...int socket(int domain,int type, int protocal) domain:协议族 ,如 AF_INET 用于 IPV4、AF_INET6 用于 IPV6、AF_LOCAL/AF_UNIX...ps:AF_UNIX 和 AF_LOCAL 是等价的,所以 AF_UNIX 也属于本地 socket; 3、三种通信编程模式 (1)TCP 协议通信socket 编程模型 1)服务端和客户端初始化 socket

    1.4K45

    网络编程 - Linux Socket编程

    Linux Socket编程 ---- 目录 前言 Socket的功能 Socket基础 Socket类型 基本结构 基本转换函数 基本Socket使用 TCP Socket实例 UDP Socket实例...主要参考《Linux网络编程》。本篇源码获取方式见文底小字。 Socket的功能   socket是通过标准的UNIX文件描述符和其他的程序通讯的一个方法。...struct in_addr { unsigned long s_addr; }; struct sockaddr_un sockaddr_un是用于存储AF_UNIX的套接字地址,推测un...和上述类似,当使用AF_UNIX时,需要填充AF_UNIX的地址结构体sockaddr_un,然后传参时强转为sockaddr。...基本Socket使用   Linux同时支持面向连接和不连接类型的套接字。在面向连接的通讯中服务器和客户机在交换数据之前先要建立一个连接;在不连接通讯中数据被作为信息的一部分被交换。

    10.9K50
    领券