码迷,mamicode.com
首页 > 编程语言 > 详细

python之网络编程

时间:2020-04-22 00:15:10      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:网络应用   无限   web应用   lock   数据库服务器   信息   send   protoc   bin   

网络编程基础知识
  • 客户端/服务器架构
    ?硬件服务器
    ??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之网络编程

标签:网络应用   无限   web应用   lock   数据库服务器   信息   send   protoc   bin   

原文地址:https://www.cnblogs.com/myfaith-feng/p/12741224.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!