网络编程(七)

网络编程(七)

UNIX域套接字(本地间进程间通信的技术)(S文件)

socket同样也可以用于本地通信(类似:管道,共享内存,消息队列,信号。。。)
效率:共享内存 > UNIX域套接字 > 消息队列 > 管道。。。。
UNIX域套接字不会出现丢包现象,非常安全可靠的!
创建套接字时使用本地协议PF_UNIX(或PF_LOCAL)。

分为流式套接字和用户数据报套接字

和其他进程间通信方式相比使用方便、效率更高

常用于前后台进程通信


基于TCP传输

TCP方式创建的unix域套接字通信,类似于无名管道,实现双向通信只需要一个文件(用于两个不相关进程或前后台进程)

在bind阶段才创建s文件

服务端server:

  1. socket(PF_UNIX,SOCK_STREAM)
  2. bind(struct sockaddr_un)
  3. lisen
  4. accept
  5. IO

客户端client:

  • socket(PF_UNIX,SOCK_STREAM)
  • connect
  • IO

基于UDP传输

udp方式的unix域套接字通信,类似于有名管道,实现双向通信需要两个文件

unlink("hello"); 删除已经存在的套接字文件

服务端(server):创建的aaa套接字文件只是用来收数据,使用客户端创建的bbb文件来发数据

  • socket
  • bind
  • IO

客户端(client):创建的bbb套接字文件只是用来收数据,使用服务端创建的aaa套接字文件来发数据

  • socket
  • bind
  • IO


    注意:
    当使用socket()创建通信的套接字时:
    1、传入:AF_INET,客户端可以自己不主动绑定IP和端口,那是系统自己会去bind()
    2、传入:AF_UNIX/AF_LOCAL,客户端这边必须主动bind()它的通信文件addr.sun_path的内容以及addr.sun_family,以此告知服务器,它的通信文件位于本地上的哪一个地方,以后通信就使用该文件来进行数据交互!!!服务器也是一样的,需要bind()!!!
相关推荐
楷哥爱开发1 小时前
TikTok Shop新加坡本土店入驻:如何选择新加坡本土住宅IP?
网络·网络协议·tcp/ip
网安蟹佬霸1 小时前
# 网络流量分析实战:从Wireshark到入侵检测系统构建(2026最新版,附完整流量分析链与IDS规则集)
网络·测试工具·安全·开源·wireshark·密码学·哈希算法
昌原的儿子LEO4 小时前
进程和线程(2)
linux·服务器·网络
Zzzzmo_4 小时前
【网络原理】TCP/IP协议02
网络·tcp/ip
DianSan_ERP5 小时前
WMS接入电商平台自动化履约实战:一张订单从平台到出库的接口时序设计
java·前端·网络·数据库·安全·架构·自动化
数据知道5 小时前
漏洞挖掘方法论:从 Fuzz 到 0day 的思维框架
网络·安全·web安全·网络安全
智购科技自动售货机工厂5 小时前
2026自动售货机语音支付模块集成:从声纹识别到支付闭环的工程实践~YH
大数据·服务器·网络·数据库·人工智能
zcmodeltech6 小时前
煤化工沙盘模型控制系统设计与实现:多工段协同联动方案
网络·人工智能·stm32·嵌入式硬件·制造·多分类
qq_401700417 小时前
TCP 粘包问题深度解析:嵌入式网络开发的常见坑与解决方案
服务器·网络·qt·网络协议·tcp/ip
zhao3266857517 小时前
长效静态IP与短效动态IP怎么选?两种适用场景有何区别
大数据·网络·tcp/ip