unix本地套接字

定义

socket同样可以用于本地通信

创建套接字时使用本地协议PF_UNIX(或PF_LOCAL)。

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

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

常用于前后台进程通信

本地地址结构

struct sockaddr_un //  <sys/un.h> 
{
    sa_family_t  sun_family;    // 地址族 AF_UNIX
    char  sun_path[108];         //  自己定义的套接字文件(可以添加绝对路径)
};

填充地址结构

struct sockaddr_un myaddr;
bzero(&myaddr,  sizeof(myaddr));
myaddr.sun_family = PF_UNIX; 
strcpy(myaddr.sun_path,  “mysocket”);

unix域流式套接字

服务器

  创建unix流式套接字(socket(AF_UNIX))------>指定本地的地址信息(struct sockaddr_un{})---->绑定本地的地址信息
---------->监听套接字------>链接客户端请求(信息通道打开)------->接收/发送信息

客户端

 创建unix流式套接字(socket(AF_UNIX))------>指定服务器的地址信息(struct sockaddr_un{})------>请求链接服务器
---------->发送/接收信息
注意:
  1.使用一个套接字通信
  2.绑定之前把创建的套接字文件关闭掉(remove())  否则导致绑定失败


	服务器:
		创建套接字 socket( )
		填充服务器本地信息结构体 sockaddr_un
		将套接字与服务器本地信息结构体绑定 bind( )
		将套接字设置为被动监听状态 listen( )
		阻塞等待客户端的连接请求 accept( )
		进行通信 recv( )/send( )
		
	客户端:
		创建套接字 socket( )
		填充服务器本地信息结构体 sockaddr_un
		发送客户端的连接请求 connect( )
		进行通信 send( )/recv( )

unix域数据报套接字

服务器:
  创建unix域数据报套接字----->指定本地的地址信息---->绑定本地的地址信息--->接收/发送信息  

客户端:
  创建unix域数据报套接字---->指定服务器的地址信息---->指定本地的地址信息---->绑定本地的地址信息(要接收数据的话)
------->发送/接受信息
服务器:
		创建套接字 socket( )
		填充服务器本地信息结构体 sockaddr_un
		将套接字与服务器本地信息结构体绑定 bind( )
		进行通信 recvfrom( )/sendto( )
		
	客户端:
		创建套接字 socket( )
		填充服务器本地信息结构体 sockaddr_un
		填充客户端本地信息结构体 sockaddr_un
		将套接字与客户端本地信息结构体绑定 bind( ) 如果不绑定,则接收不到服务器发送的数据
		进行通信 sendto( )/recvfrom( )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值