zoukankan      html  css  js  c++  java
  • Python的学习之旅———socket ,socketserver

    Python 提供了两个基本的 socket 模块。
    第一个是 Socket,它提供了标准的 BSD Sockets API。
    第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

    下面先讲的是Socket模块功能

    1、Socket 类型

    套接字格式:

    socket(family,type[,protocal]) 使用给定的地址族、套接字类型、协议编号(默认为0)来创建套接字。
    socket类型
    描述
    socket.AF_UNIX
    只能够用于单一的Unix系统进程间通信
    socket.AF_INET
    服务器之间网络通信
    socket.AF_INET6
    IPv6
    socket.SOCK_STREAM
    流式socket , for TCP
    socket.SOCK_DGRAM
    数据报式socket , for UDP
    socket.SOCK_RAW
    原始套接字,普通的套接字无法处理ICMP、IGMP等网络报文,而SOCK_RAW可以;其次,SOCK_RAW也可以处理特殊的IPv4报文;此外,利用原始套接字,可以通过IP_HDRINCL套接字选项由用户构造IP头。
    socket.SOCK_SEQPACKET
    可靠的连续数据包服务
    创建TCP Socket:
    s=[url=]socket.socket(socket.AF_INET,socket.SOCK_STREAM)[/url]

    服务端

    1 ss = socket() #创建服务器套接字
    2 ss.bind()      #把地址绑定到套接字
    3 ss.listen()      #监听链接
    4 inf_loop:      #服务器无限循环
    5     cs = ss.accept() #接受客户端链接
    6     comm_loop:         #通讯循环
    7         cs.recv()/cs.send() #对话(接收与发送)
    8     cs.close()    #关闭客户端套接字
    9 ss.close()        #关闭服务器套接字(可选)
    

    1

    客户端

     cs = socket()    # 创建客户套接字
     cs.connect()    # 尝试连接服务器
     comm_loop:        # 通讯循环
     cs.send()/cs.recv()    # 对话(发送/接收)
     cs.close()            # 关闭客户套接字
    

    socketserver

    自动开了多进程 多线程 ,解决IO问题

     1 import socketserver
     2 
     3 class MyTCPhandler(socketserver.BaseRequestHandler):    #通信
     4 
     5   def handle(self):
     6 
     7     self.request.recv(1024)
     8     self.request.send(data.upper())
     9     print('===>',self)
    10 if __name__=='__main__'
    11 
    12   print(socketserver.ForkingTCPserver)               #windos没有fork这个接口 多进程
    13 
    14   s=socketserver.ThreadingTCPserver(('127.0.0.1',8080),MyTCPhandler)
    15 
    16   s.server_forever()                

          

      

  • 相关阅读:
    揭秘数字行为:快速地多次点击
    MySQL事务在MGR中的漫游记—路线图
    如何成为一名获客专家?
    10分钟快速构建汽车零售看板
    聊一聊整车厂的那些事——售后配件业务
    网易云易盾牵手百视通 助力广电领域新媒体内容安全
    人工智能热门图书(深度学习、TensorFlow)免费送!
    dubbo异步调用原理 (1)
    dubbo事件通知机制 (2)
    dubbo事件通知机制(1)
  • 原文地址:https://www.cnblogs.com/surehunter/p/7821193.html
Copyright © 2011-2022 走看看