linux的本地套接字介绍

  • linux文件类型:bcd-lsp
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)
功能:删除一个文件
  • unix本地套接字接收端实现
#此程序演示本地套接字接收端的创建与使用
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()
  • unix本地套接字发送端的实现
#此程序演示本地套接字的发送过程
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()

你可能感兴趣的:(Linux,PythonNet)