python学习之socket模块

socket.socket(family=AF_INET,type=SOCK_STREAM,proto=0,fileno=None)
使用给定的地址族,套接字类型和协议号创建一个新的套接字。
family: 地址系列应为AF_INET(默认值),AF_INET6,AF_UNIX,AF_CAN或AF_RDS。
  (AF_UNIX 域实际上是使用本地 socket 文件来通信)

type: 套接字类型应为SOCK_STREAM(默认值),SOCK_DGRAM,SOCK_RAW或其他SOCK_常量之一。
SOCK_STREAM 是有保障的(即能保证数据正确传送到对方)面向连接的SOCKET,多用于资料(如文件)传送。

SOCK_DGRAM 是无保障的面向消息的socket , 主要用于在网络上发广播信息。

SOCK_STREAM是基于TCP的,数据传输比较有保障。SOCK_DGRAM是基于UDP的,专门用于局域网,基于广播

SOCK_STREAM 是数据流,一般是tcp/ip协议的编程,SOCK_DGRAM分是数据包,是udp协议网络编程
proto: 协议号通常为零,可以省略,或者在地址族为AF_CAN的情况下,协议应为CAN_RAW或CAN_BCM之一。
fileno: 如果指定了fileno,则其他参数将被忽略,导致带有指定文件描述符的套接字返回。
    与socket.fromfd()不同,fileno将返回相同的套接字,而不是重复的。
    这可能有助于使用socket.close()关闭一个独立的插座。
新创建的套接字是不可继承的。

版本3.3中更改:添加了AF_CAN系列。添加了AF_RDS系列。
在版本3.4中更改:添加了CAN_BCM协议。
在版本3.4中更改:返回的套接字现在不可继承。
socket.send(bytes [,flags])

发送数据到套接字。
插座必须连接到远程插座。
可选flags参数与上述recv()的含义相同。
返回发送的字节数。
应用程序负责检查所有数据是否已发送;如果只传输了一些数据,则应用程序需要尝试传送剩余的数据。
有关此主题的更多信息,请参阅Socket Programming HOWTO。

在版本3.5中更改:如果系统调用中断,并且信号处理程序不引发异常,则该方法现在将重试系统调用,而不是提高InterruptedError异常(请参阅PEP 475的理由)。

socket.recv(bufsize [,flags])

从套接字接收数据。
返回值是表示接收到的数据的字节对象。
一次性接收的最大数据量由bufsize指定。有关可选参数flags的含义,请参见Unix手册页面recv(2)它默认为零。
注意
为了与硬件和网络现实最佳匹配,bufsize的值应该是相对较小的2,例如4096。

在版本3.5中更改:如果系统调用中断,并且信号处理程序不引发异常,则该方法现在将重试系统调用,而不是提高InterruptedError异常(请参阅PEP 475的理由)。

原文地址:https://www.cnblogs.com/leomei91/p/7612260.html