zoukankan      html  css  js  c++  java
  • python socket函数

    Python 官方关于 Socket 的函数:http://docs.python.org/library/socket.html

    socket类型

      套接字格式:socket(family,type[,protocal])使用给定的地址族,套接字类型,协议编号(默认为0)来创建套接字

        family指明了协议族/域,通常AF_INET、AF_INET6、AF_LOCAL等;

        type是套接口类型,主要是SOCK_STREAM、SOCK_DGRAM、SOCK_RAW;

        protocol一般取为0。(默认)与特定的地址家族相关的协议,如果是 0 ,则系统就会根据地址格式和套接类别,自动选择一个合适的协议成功时,返回一个小的非负整数值,与文件描述符类似。

      创建TCP Socket: s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

      创建UDP Socket: s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

       

    socket函数  

      服务端socket函数

        s.bind(address):将套接字绑定到地址,在AF_INET下,以tuple(host,prot)的方式传入,如s.bind((host,port))。

        s.listen(backlog):开始监听TCP传入连接。backlog指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值最少为1。

        s.accept():接受TCP连接并返回(conn,address),其中conn是新的套接字对象,可以用来接收和发送数据,address是连接客户端的地址。(sock,addr = s.accept)。

      客户端socket函数

        s.connect(address):链接到address处的套接字,一般address的格式为tuple(host,port),如果链接出错,则返回socket.error错误。

        s.connect_ex(address):功能与s.connect(address)相同,但成功返回0,失败返回errno的值。

      公共Socket函数

        s.send(string[,flag]):发送TCP数据,将string中的数据发送到连接到套接字,返回值是要发送到字节数量,该数量可能小于string的字节大小。

        s.sendall(string[,flag]):完整发送TCP数据,将string中的数据发送到链接到套接字,但在返回之前尝试发送所有的数据。成功返回None,失败则抛出异常。

        s.recv(bufsize[,flag]):接受TCP套接字的数据,数据以字符串的形式返回,bufsize指定要接收的最大数据量,flag提供有关消息的其它消息,通常可以忽略。

        s.sendto(string[,flag],address):发送UDP数据,将数据发送到套接字,address形式为tuple(hostadder,port),指定远程地址发送,返回值是发送到字节。

        s.recvfrom(bufsize[,flag]):接受UDP套接字的数据,与recv()类似,但返回值是tuple(data,address)。其中data是包涵接受数据的字符串,address是发送数据的套接字地址。

        s.close():关闭套接字。

        s.getpeername():返回套接字的远程地址,返回值通常是一个tuple(hostaddr,port)。

        s.getsockname():返回套接字自己的地址,返回值通常是一个tuple(hostaddr,port)。

        s.getsockopt(level,optname[,buflen]]):返回套接字选项的值。

        s.gettimeout():返回当前超时值,单位是秒,如果没有设置超时值则返回None。

        s.setsockopt(level, option,value):设置给定套接字选项的值。

        s.settimeout(timeout):设置套接字操作的超时时间,timeout是一个浮点数,单位是秒。值为None则表示永远不会超时。一般超时期应在刚创建套接字时设置。

        s.setblocking(flag):如果flag为0,则将套接字设置为非阻塞模式,否则将套接字设置为阻塞模式(默认值)。非阻塞模式下,如果调用recv()没有发现任何数据,或send()调用无法立即发送数据,那么将引发socket.error异常。

        s.makefile():创建一个与该套接字相关的文件。

        s.fileno():返回套接字的文件描述。

    参考:

    https://www.cnblogs.com/aylin/p/5572104.html

    http://www.manongjc.com/detail/18-vkunmjwmzgespiu.html

  • 相关阅读:
    项目冲刺-第一天
    第四次个人作业-关于微软必应词典客户端 的案例分析
    第三次作业-结对编程
    学院教师开课管理网站项目
    使用Git进行代码管理的心得--github for windows
    十天冲刺---Day8
    十天冲刺---Day7
    十天冲刺---Day6
    十天冲刺---Day5
    十天冲刺---Day4
  • 原文地址:https://www.cnblogs.com/wu-wu/p/13784179.html
Copyright © 2011-2022 走看看