b: 块设备文件
c: 字符设备文件
d: 目录
-: 普通文件
l: 链接(快捷方式)
s: 套接字
p: 管道
作用:用于本地不同的程序间进行通信
创建流程
1、创建本地套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
2、绑定本地套接字文件
*选定文件位置和名称
*sockfd.bind(path)
3、监听 listen()
4、消息收发 recv send
cookie:
os.path.exists(path)
功能:判断一个文件是否存在
参数:目标文件
返回值:存在返回True 否则False
os.remove(path) os.unlink(path)
功能:删除一个文件
#此程序演示本地套接字接收端的创建与使用
from socket import *
import os
#确定套接字文件
sock_file = './sock_file'
#判断文件是否已经存在
if os.path.exists(sock_file):
os.remove(sock_file)
#创建本地套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
#绑定本地套接字文件
sockfd.bind(sock_file)
sockfd.listen(5)
#监听sockfd.listen(3)
#消息收发
while True:
c,addr = sockfd.accept()
while True:
data = c.recv(1024)
if data:
print("Receive:",data.decode())
c.send(b'Received')
else:
break
c.close()
sockfd.close()
#此程序演示本地套接字的发送过程
from socket import *
#确保通信两端用的是同一个套接字文件
sock_file = './sock_file'
#创建本地套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
#连接另一端
sockfd.connect(sock_file)
#收发消息
while True:
msg = input('>>')
if msg:
sockfd.send(msg.encode())
print(sockfd.recv(1024))
else:
break
sockfd.close()