• python模块------socket


    socket模块

    要使用socket.socket()函数来创建套接字。其语法如下:

    socket.socket(socket_family,socket_type,protocol=0)

    socket_family可以是如下参数:

      socket.AF_INET IPv4(默认)

      socket.AF_INET6 IPv6

      socket.AF_UNIX 只能够用于单一的Unix系统进程间通信

    socket_type可以是如下参数:

      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_RDM 是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级访问,在需要执行某些特殊操作时使用,如发送ICMP报文。SOCK_RAM通常仅限于高级用户或管理员运行的程序使用。

      socket.SOCK_SEQPACKET 可靠的连续数据包服务

    protocol参数:

      0  (默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议

    套接字对象内建方法

    服务器端套接字函数

    s.bind()   绑定地址(ip地址,端口)到套接字,参数必须是元组的格式例如:s.bind(('127.0.0.1',8009))

    s.listen(5)  开始监听,5为最大挂起的连接数

    s.accept()  被动接受客户端连接,阻塞,等待连接

    客户端套接字函数

    s.connect()  连接服务器端,参数必须是元组格式例如:s.connect(('127,0.0.1',8009))

    公共用途的套接字函数

    s.recv(1024)  接收TCP数据,1024为一次数据接收的大小

    s.send(bytes)  发送TCP数据,python3发送数据的格式必须为bytes格式

    s.sendall()  完整发送数据,内部循环调用send

    s.close()  关闭套接字

  • 相关阅读:
    路飞学城Python-Day19
    路飞学城Python-Day18
    路飞学城Python-Day17
    ES6新特性概览
    关于Flex,有12个属性很重要
    Web前端工程师成长之路——知识汇总
    解决ajax跨域请求 (总结)
    项目中关于AJAX的使用总结
    Web前端性能优化——如何提高页面加载速度
    Canvas和SVG的区别
  • 原文地址:https://www.cnblogs.com/jinyuanliu/p/13028534.html
Copyright © 2020-2023  润新知