linux 本地套接字
1、本地套接字:
用于本地进程间通信
2、本地套接字传输流程
【1】 创建套接字对象
sockfd = socket(AF_UNIX,SOCK_STREAM)
【2】 绑定套接字文件,如果文件不存在则自动创建
sockfd.bind(file)
套接字文件:下面连接中的套接字文件就是下面代码运行后生成的
https://www.cnblogs.com/longyuu/p/14224329.html
【3】 监听
listen
【4】 消息收发
recv、 send
3、应用
【local-socket-server】
from socket import *
import os
#确定使用哪个套接字文件
#sock_file,只是指定一个文件为套接字文件,和具体的值没关系。例如,下面两个都可以
sock_file = "./soc.txt"
#sock_file = "./sock"
#判断文件是否已经存在,存在删除
if os.path.exists(sock_file):
os.unlink(sock_file)
#创建本地套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
#绑定套接字文件
sockfd.bind(sock_file)
#监听
sockfd.listen(3)
#消息收发
while True:
c,addr = sockfd.accept()
while True:
data = c.recv(1024)
if data:
print(data.decode())
else:
break
c.close()
sockfd.close()
【local-socket-client】
from socket import *
sock_file = "./soc.txt"
#sock_file = "./sock"
# 创建套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
#连接另外一端
sockfd.connect(sock_file)
#发送消息
while True:
msg = input(">>")
if msg:
sockfd.send(msg.encode())
else:
break
sockfd.close()