python之网络编程

Posted 北宫乾宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之网络编程相关的知识,希望对你有一定的参考价值。

网络编程基础知识
  • 客户端/服务器架构
    ?硬件服务器
    ??1、文件服务器:拥有庞大通用存储容量的计算机,可以被客户端远程访问。客户端计算机会挂载服务器计算机上的磁盘,看起来就像这个磁盘是在本地计算机上一样。
    ???网络文件系统(NFS):最流行的支持文件服务器的网络操作系统,sun公司开发的
    ???专用外围设备:磁盘驱动器
    ??2、打印服务器:处理客户端传入的打印作业然后发送给系统中的打印设备
    ???专用外围设备:打印机
    ?软件服务器
    ??web服务器
    ???上面安装提供给用户的web页面和web应用程序,然后启动web服务器 =》实现了一个c/s架构
    ??数据库服务器
    ??窗体(window)服务器
    ?思路:服务器无限循环等待客户端的请求,客户端如果有需求就可以向服务器发送请求
    ?网路编程就是遵循客户端/服务器架构的软件模型

  • 客户端/服务器网络编程大致流程
    服务器端:创建一个通信端点 ---》 无限循环监听服务器 ---》 等待客户端的请求并响应请求
    客户端:创建一个通信端点 ---》与服务器建立一个连接 ---》发送请求
    当请求被服务器处理,且客户端收到结果或某种确认信息,通信终止

  • 套接字(socket):通信端点
    1、它是什么?
    ?计算机网络数据结构
    ?在任何类型的通信开始之前,网络应用程序必须创建套接字
    2、创建套接字

socket(socket_family, socket_type, protocol=0)
socket_family是AF_UNIX或AF_INET
socket_type是SOCK_STREAM或SOCK_DGRAM
protocol通常省略,默认为0
创建Tcp/IP套接字
tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
创建UDP/IP套接字
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
套接字对象(内置)方法
服务器套接字方法
s.bind():将地址(主机名、端口号对)绑定到套接字上
s.listen():设置并启动TCP监听器
s.accept():被动接受TCP客户端连接,一直等待直到连接到达(阻塞)
客户端套接字方法
s.connect():主动发起TCP服务器连接
s.connect_ex():connect()的扩展版本,此时会以错误码的形式返回问题,而不是抛出一个异常
普通的套接字方法
s.recv():接受TCP消息
s.recv_into():接受TCP消息到指定的缓冲区(python2.5中新增)
s.send():发送TCP消息
s.sendall():完整的发送TCP消息
s.recvfrom():接受UDP消息
s.recvfrom_info():接收UDP消息到指定的缓冲区
s.sendto():发送UDP消息
s.getpeername():连接到套接字(TCP)的远程地址
python的socket模块具体API查看官方文档:https://docs.python.org/3/library/index.html#library-index

以上是关于python之网络编程的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记之网络编程

《Python黑客编程之极速入门》正式开课

python高级之网络编程

Python之路第八篇--Python基础之网络编程

编程基础之Python12Python中的语句

编程爱好者学Python之入门(Python安装)