Socket网络编程之本地传输UNIX

本地套接字

(1)作用

  • 用于本地不同进程间通信

(2)流程

  1. 创建套接字对象
from socket import *

sockfd=socket(AF_UNIX,SOCK_STREAM)
  1. 建立套接字文件
sockfd.bind(path)绑定一个文件
  1. 监听
sockfd.listen(5)
  1. 等待连接请求
c, addr = sockfd.accept()
  1. 收发消息
c.recv(1024)
c.send(b"Receive your message")

(3)代码示例

# unix_recv.py

from socket import *
import os


# 确定使用哪个套接字文件
sock_file = "./sock_file"

# 如果存在同名文件则删除并重新创建
if os.path.exists(sock_file):
	os.unlink(sock_file)
	os.mknod(sock_file)

# 创建本地套接字
sockfd = socket(AF_UNIX, SOCK_STREAM)
# 绑定套接字文件:如果文件不存在,则绑定的同时创建此文件
sockfd.bind(sock_file)
# 监听
sockfd.listen(5)
# 消息收发
while True:
	c, addr = sockfd.accept()
	while True:
		data = c.recv(1024)
		if data:
			print(data.decode())
			c.send(b"Receive your message")
		else:
			break
	c.close()
sockfd.close()
# unix_send.py

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).decode())
	else:
		break
sockfd.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值