Python--套接字
来源:互联网 发布:linux os update 编辑:程序博客网 时间:2024/04/30 01:32
套接字
套接字是计算机网络数据结构。在任何类型的通信开始前,网络应用程序必须创建套接字。
有两种类型的套接字:基于文件的和面向网络的。
UNIX套接字是我们所讲的套接字的第一个家族,并且拥有一个”家族名字“AF_UNIX,它代表地址家族(address family):UNIX。其他比较旧的系统可能会将地址家族表示成域(domain)或协议家族(protocol family),并使用其缩写PF而非AF。
第二种类型的套接字是基于网络的,它也有自己的家族名字AF_INET,或者地址家族:因特网。另一个地址家族AF_INET6用于IPv6寻址。在所有的地址家族中,目前AF_INET是使用最广泛的。
python2.5中引入了对特殊类型的Linux套接字的支持。套接字的AF_NETLINK家族允许使用标准的BSD套接字接口进行用户级别和内核级别代码之间的IPC(Inter-Process Communication,进程间通信)
针对Linux的另一种特性(python2.6中新增)就是支持透明的进程间通信(TIPC)协议。TIPC允许计算机集群之中的机器相互通信,而无须使用基于IP的寻址方式。python对TIPC的支持以AF_TIPC家族的方式呈现。
总的来说,python只支持AF_UNIX、AF_NETLINK、AF_TIPC和AF_INET家族。在本章剩余的大部分内容中,我们将使用AF_INET。
面向连接的套接字和无连接的套接字
1.面向连接的套接字
不管你采用哪种地址家族,都有两种不同风格的套接字连接。
面向连接的通信提供序列化、可靠的和不重复的数据交付,每条消息可以拆分成多个片段,并且每一条消息片段都能确保能够到达目的地。实现这种连接类型的主要协议是传输控制协议(TCP),为了创建TCP套接字,必须使用SOCK_STREAM作为套接字类型。
2.无连接的套接字
在通信开始之前不需要建立连接。在数据传输过程中并无法保证它的顺序、可靠性或重复性。实现这种连接类型的主要协议是用户数据报协议(UDP),为了创建UDP套接字,必须使用SOCK_DGRAM作为套接字类型
3.Python中的网络编程
要创建套接字,必须使用socket.socket()函数,它一般的语法如下:
socket(socket_family,socket_type,protocol=0)
其中,socket_family是AF_UNIX或AF_INET,socket_type是SOCK_STREAM或SOCK_DGRAM。protocol通常省略,默认为0.
- Python--套接字
- python socket套接字
- python 套接字简单服务器端
- Python 网络套接字编程
- python支持的套接字选项
- python网络套接字/多线程锁
- python 网络编程 TCP套接字实例
- 【python网络编程】TCP套接字
- python网络编程之<套接字1>
- [python] 向指定套接字发送信息
- python 网络编程学习 套接字socket
- python套接字对象的常用函数
- Python之socket(套接字)
- Python 网络编程(套接字编程)
- python套接字(《python核心编程》实例)报错
- 使用 Python 编写套接字应用程序 套接字和 SocketServer 模块
- 套接字学习:资料总结,python socket document学习总结
- python网络编程中套接字的使用
- Sencha Touch Ext.Carousel 切换 Bug
- 用代理,拨号换IP
- python with和上下文管理工具
- 了解C语言之指针(一)
- 假期的宿舍 洛谷2055 网络流
- Python--套接字
- 借教室 洛谷1083 差分+二分
- 了解C语言之指针(二)
- 数组的使用
- 快速傅里叶变换(FFT)的原理及公式
- 如何求数组中的最大值
- 了解C语言之指针(三)
- 【最短路入门专题1】H
- 0806JS