#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. drivers/mfd/Mfd-core.c

    mfd: multifunction device drivers---多功能设备驱动开发:A product or device that has multiple functions. An ex ...

  2. 华东交通大学2016年ACM“双基”程序设计竞赛 1010

    Problem Description LB是个十分喜欢钻研的人,对什么事都要搞明白.有一天他学习到了阶乘,他十分喜欢,所以他在想一个问题.如果给定一个数n,求n!能不能被2016整除.LB算了好久都 ...

  3. 2016-2017 CT S03E05: Codeforces Trainings Season 3 Episode 5 (2016 Stanford Local Programming Contest, Extended) J

    链接:http://codeforces.com/gym/101116 题意:给出n个点,要求一个矩形框将(n/2)+1个点框住,要面积最小 解法:先根据x轴选出i->j之间的点,中间的点(包括 ...

  4. C语言100个经典算法

    POJ上做做ACM的题 语言的学习基础,100个经典的算法C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的算法 题目:古典问题:有一对兔子,从出生后 ...

  5. 2016年6月24日 星期五 --出埃及记 Exodus 14:21

    2016年6月24日 星期五 --出埃及记 Exodus 14:21 Then Moses stretched out his hand over the sea, and all that nigh ...

  6. php访问mysql数据库

    //建一个连接,造一个连接对象 $db = new MySQLi("localhost","root","123","mydb&q ...

  7. centos 3d特效

    说下我怎么实现的吧 1.现在新力得里搜“XGL”和“Compiz”,把相关软件安装好. 2.安装ndivid的glx驱动: sudo apt-get install nvidia-kernel-com ...

  8. sql通用分页自定义表条件存储过程

    create PROCEDURE PrcTestByPage ( @tablename varchar(50), @selectfilter varchar(100), @orderbyfilter ...

  9. HTML DOM元素

    HTML DOM元素 1.创建新的HTML元素 向HTML DOM添加新元素,必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. <!DOCTYPE html> <h ...

  10. CodeForces 471C MUH and House of Cards

    MUH and House of Cards Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & % ...