1.什么是套接字

一开始,套接字被设计用在一台主机上的多个应用程序之间的通信,也被称为进程间通信(IPC)。

套接字有两种:基于文件的和基于网络的。

 

2.套接字家族

(1)基于文件:

家族名:AF_UNIX(在POSIX1.g标准中,也叫AF_LOCAL),表示“地址家族(缩写AP,老系统也叫协议家族即PF):UNIX”

(2)基于网络:

家族名:AF_INET,表示“地址家族(AF):Internet”

另一种地址家族AF_INET6用于IPv6

(3)Python2.5中加入了一种Linux套接字的支持:AF_NETLINK

让用户代码与内核代码之间的IPC可以使用标准BSD套接字接口。

 

以上3中地址家族中,基于网络的AF_INET家族使用最为广泛,也是使用socket()创建套接字时默认的地址家族。

 

3.套接字类型

(1)面向连接的套接字(流套接字):基于TCP协议

TCP套接字类型:SOCK_STREAM

(2)面向无连接的套接字(数据报套接字):基于UDP协议

UDP套接字类型:SOCK_DGRAM(注释:DGRAM为datagram的缩写)

 

4.套接字地址

套接字地址结构依赖于套接字家族。详见:http://docs.python.org/3/library/socket.html#module-socket

针对AP_INET地址家族,是一个格式为(主机名host,端口port)的元组

host:域名('www.python.org')或者IP地址

port:一个数字(注意:低于1024的端口号被用于标准服务)

 

 

 

posted on 2013-04-23 16:20  101010  阅读(312)  评论(0编辑  收藏  举报