目录
1,Scoket简介
python的标准库提供了许多网络相关的模块,有的底层的socket模块,也有和HTTP相关的模块,电子邮件也算是标准库与网络相关的模块。
计算机网络编程都离不开一个基本的组件:套接字(Scoket)。操作系统通常会为应用程序提供一组应用程序接口(API),也称为套接字接口(Scoket API)。应用程序可以通过套接字接口来使用网络套接字,已进行数据交换。最早的套字接口来自于4.2 BSD,现代常见的套接字接口,大多源自berkeley套接字标准,套接字接口,以IP地址,即通信接口组成的套接字地址。远程的套接字地址和本地套接字地址完成连线后,再加上使用协议,这5个元组,作为套字对,就可以彼此交换数据了,例如在同一台计算机上,TCP协议与udp协议可以同时使用的port而互不干扰,操作系统可以根据套字地址决定,将数据送达特定的进程或线程,这就像是电话系统中以电话号码加上分机号码来决定通话对象一般。
套接字本质上是操作系统,提供的一种进程间通信机制使主机或另一台计算机之间进程可以通信。在Python中,大多数网络模块都隐藏了Scoket模块的基本细节,用户在调用网络库的时候可以不直接和套接字交互,但是Python官方还是提供了Scoket模块,允许用户操作多底层的套接字接口。
2,Socket模块
标准库中的模块提供了对层BD套接字样式网络的访问,使用socket模块可以实现客户
机和服务器之间的套接字。在python中使用socket模块包含的函数和类定义可以生成通过网络通
的程序
套接字格式:socket(famil,type[,protocal])。使用给定的套接族,套接字类型,协编号(默认为0)来建套接字。
family多数指定调用者期持返回的套接字接口地址结构的类型。常见的可以用的是
AF_INET,AF_INET6和AF_UNSPEC,AF_UNIX用于同一台机器上的通信(windows不支持),AF_INET表示使用P4通,不能返回任何IPv6相关的信息。AF_INET6表示使用IP通
信。不能返回任何IPv4相关的信息。AF_NSPEC表示函数返回的是用于定主名和服各名
适合任何协的地址,