您的位置:首页 > 其它

有关socket AF_UNIX的一点心得

2015-05-13 15:02 309 查看
转自:http://blog.csdn.net/yuxi2046/article/details/6996105

socket=socket.socket(family, type)
 

family参数代表地址家族,比较常用的为AF_INET或AF_UNIX。AF_UNIX用于同一台机器上的进程间通信,AF_INET对于IPV4协议的TCP和UDP 。

type参数代表套接字类型,SOCK_STREAM(流套接字)或者SOCK_DGRAM(数据报文套接字)。

其中AF_INET类型有关的例子非常多,但AF_UNIX的少见,所以给出一个AF_UNIX简单的例子,并通过select实现非阻塞socket。

Server端:

<pre class="python" name="code">import os
import socket
import select
import sys

sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
path = './tt.d'
if os.path.exists(path):
os.unlink(path)
sock.bind(path)
sock.listen(5)

infds, outfds, errfds = select.select([sock,],[],[],5)
if len(infds) != 0:
con,addr = sock.accept()
print con.recv(1024)
con.close()
sock.close()
print '5 seconds later no data coming'



Client端:

</pre><pre class="python" name="code">import socket

sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect('./tt.d')
sock.send('Hello Socket')
sock.close()


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: