#server:

SERVER_PATH = "/tmp/python_unix_socket_server"
def run_unix_domain_socket_server():
if os.path.exists(SERVER_PATH):
os.remove(SERVER_PATH)
print('starting unix domain socket server.')
#
#UNIX 无连接的socket(类型 SOCK_DGRAM)
sever=socket.socket(socket.AF_UNIX,socket.SOCK_DGRAM)
#在创建套接字描述符之后,bind() 函数获取套接字的唯一名称。
#UNIX 域套接字的名称空间由路径名组成。
# 当套接字程序调用 bind() 函数时,会在文件系统目录中创建一项。
# 如果路径名已存在,则 bind() 失败。因此,UNIX 域套接字程序应总是调用 unlink() 函数以在结束时除去该目录项。
sever.bind(SERVER_PATH)
print("监听路径:%s"%SERVER_PATH)
while True:
#从客户机应用程序接收数据。
datagram=sever.recv(1024)
#如果没有数据
if not datagram:
break
else:
print('-'*20)
print(datagram) if "DONE"==datagram:
break
print('*'*20)
#关闭socket
print('关闭服务器')
sever.close()
#从文件系统除去 UNIX 路径名。
os.remove(SERVER_PATH)

  client:

#coding:utf-8
__author__ = 'similarface' import socket
import sys
SERVER_PATH = "/tmp/python_unix_socket_server"
def run_unix_domain_socket_client():
#端点的套接字描述符。该语句还标识将对此套接字使用带有流传输(SOCK_STREAM)的 UNIX 地址系列。该函数返回表示端点的套接字描述符。还可使用 socketpair() 函数初始化 UNIX 套接字
sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
#使用 connect() 函数来建立与服务器的连接。
try:
sock.connect(SERVER_PATH)
except socket.error, msg:
print >>sys.stderr, msg
sys.exit(1) try:
message="Good Info"
print("Sending[%s]"%message)
sock.sendall(message)
amount_received=0
amount_expected=len(message)
while amount_received < amount_expected:
#函数一直循环,直到所有 16 字节数据都到达为止。
data=sock.recv(16)
amount_received+=len(data)
print >>sys.stderr, "Received [%s]" % data
finally:
#关闭客户端
sock.close() if __name__ == '__main__':
run_unix_domain_socket_client()

  

Unix domain sockets的更多相关文章

  1. PHP 调用 Go 服务的正确方式 - Unix Domain Sockets

    * { color: #3e3e3e } body { font-family: "Helvetica Neue", Helvetica, "Hiragino Sans ...

  2. UNIX DOMAIN SOCKETS IN GO unix域套接字

    Unix domain sockets in Go - Golang News https://golangnews.org/2019/02/unix-domain-sockets-in-go/ pa ...

  3. php, hhvm与odp & Unix domain Socket方式

    接上一篇,复习一下 启动php或hhvm: php/sbin/php-fpm start hhvm/bin/hhvm_control start 启动nginx或lighttpd: webserver ...

  4. 网络协议之:socket协议详解之Unix domain Socket

    目录 简介 什么是Unix domain Socket 使用socat来创建Unix Domain Sockets 使用ss命令来查看Unix domain Socket 使用nc连接到Unix do ...

  5. 由一个简单需求到Linux环境下的syslog、unix domain socket

    本文记录了因为一个简单的日志需求,继而对linux环境下syslog.rsyslog.unix domain socket的学习.本文关注使用层面,并不涉及rsyslog的实现原理,感兴趣的读者可以参 ...

  6. libpqxx接口的在linux下的使用,解决psql:connections on Unix domain socket "/tmp/.s.PGSQL.5432"错误

    在项目中使用postgresql数据库时要求在windows和linux双平台兼容.于是在windows下使用的接口在linux下爆出异常: psql:connections on Unix doma ...

  7. Unix domain socket IPC

    UNIX Domain socket 虽然网络socket也可用于同一台主机的进程间通讯(通过lo地址127.0.0.1),但是unix domain socket用于IPC更有效率:不需要经过网络协 ...

  8. 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

    错误提示: psql: could not connect to server: No such file or directory Is the server running locally and ...

  9. UNIX域套接字(unix domain)

    UNIX域套接字用于在同一台机器上运行的进程之间的通信. UNIX域套接字提供流和数据报两种接口. 说明:UNIX域套接字比因特网套接字效率更高.它仅赋值数据:不进行协议处理,如添加或删除网络报头.计 ...

随机推荐

  1. XMLHttpRequest 2.0与FileReader接口的方法

    jsonpd的实现: var jsonp = function (options) { var url = options.url, params = options.params || {}, ca ...

  2. Android Handler Message总结

    http://blog.csdn.net/caesardadi/article/details/8473777 当应用程序启动时,会开启一个主线程(也就是UI线程),由她来管理UI,监听用户点击,来响 ...

  3. 【leetcode❤python】121. Best Time to Buy and Sell Stock

    #-*- coding: UTF-8 -*- #Method1 :超时#class Solution(object):#    def maxProfit(self, prices):#      # ...

  4. BZOJ 1050 旅行comf(枚举最小边-并查集)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1050 题意:给出一个带权图.求一条s到t的路径使得这条路径上最大最小边的比值最小? 思路 ...

  5. 【转载】理解C语言中的关键字extern

    原文:理解C语言中的关键字extern 最近写了一段C程序,编译时出现变量重复定义的错误,自己查看没发现错误.使用Google发现,自己对extern理解不透彻,我搜到了这篇文章,写得不错.我拙劣的翻 ...

  6. CUBRID学习笔记 12防火墙设置 linux

    这玩意是linux上用的. 如果你的数据库不是装在linux下可以飘过了 iptables -I INPUT -p tcp --dport 8001 -j ACCEPT iptables -I INP ...

  7. Mysql存储引擎

    存储引擎是什么 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎.内存存储引擎能够在内存中存储所有的表格数据.又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能 ...

  8. NoSQL聚合数据模型

    NoSQL聚合数据模型 特点 聚合数据模型的特点就是把经常访问的数据放在一起(聚合在一块): 这样带来的好处很明显,对于某个查询请求,能够在与数据库一次交互中将所有数据都取出来: 当然,以这种方式存储 ...

  9. 【CC评网】2013.第42周 话说时间管理

    时间管理 工作几年之后,大家都会有意识的培养时间管理的概念:但如何真正做到位,并持续坚持,并不是一件容易的事: 虽然关注时间管理已有几年,但目前我对于时间的利用并不高效: 理论上的东西就是那些,但真正 ...

  10. jQuery:show()方法

    show()方法是jQuery的方法,功能是显示元素,参数是时间,单位是毫秒,例如: Html: <div class="one" id="one"> ...