1、socket语法
sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
参数一:socket.AF_INET (IPV4), socket.AF_INET6 (ipv6)
参数二:socket.SOCK_STREAM 流式socket, for TCP
socket.SOCK_DGRAM 数据报文,for udp
socket.SOCK_RAW 原始套接字,普通套接字无法处理imcp、igmp等报文,socket_raw可以;
socket.SOCK_RDM 可靠的UDP形式,保证交付的数据报但不保证顺序
SOCKET.SOCK_SEQPACKET 可靠连续数据包服务
参数三:协议:
默认为0,系统自动根据地址格式和套接字类别自动选择,也可以指定。
2、相关语法:
a、sk.bind(address):将套接字绑定到指定地址,address是IP+Port元组形式; b、sk.listen(bakclog):开始监听传入的连接,在没有拒绝连接前的最大连接数; c、sk.setblocking(bool):默认为True-阻塞,如果设置为False,如果accept和recv没有数据就会报错 d、sk.accept():接受连接并返回conn,adress元组,其中conn为套接字对象,可以用来发送和接受套接字数据; e、sk.connect(addr):连接套接字 f、sk.connect_ex(addr):与connect类似,有返回值,成功为0,如果失败返回相应失败码 g、sk.close():关闭套接字 h、sk.recv(buffsize):接收套接字数据,返回字符串 i、sk.recvfrom(buffsize):与recv类似,返回字符串+地址 j、sk.send(string):将string发送到套接字,返回值是发送字节的数量,可能小于string,因为可能尚未完全发送完成; k、sk.sendall(string):将string全部发送至套接字,发送完成后再返回值 l、sk.sendto(string,address):将string发送至套接字,指定发送的客户端地址,用于UDP数据报传输 m、sk.settimeout(timeout):设置套接字超时时间 n、sk.getpeername():返回套接字远程连接地址 o、sk.getsockname():返回套接字本地地址 p、sk.fileno():返回套接字文件描述