1、socket()模块函数
要创建套接字,必须使用socket.socket()函数,它的语法如下:
1 | socket(socket_family, socket_type, protocol = 0) |
其中,socket_family是AF_UNIX(基于文件)或AF_INET(基于网络),socket_type是SCOKET_STREAM(TCP)或SOCKET_DGRAM(UDP)。
1 | tcpSock = socket(AF_INET, SOCK_STREAM/SOCKET_DGRAM) |
2、套接字对象方法
1、服务器套接字方法
2、客户端套接字方法
3、普通的套接字方法
名称 描述
s.recv() 接受TCP消息
s.recv_into() 接受TCP消息到指定的缓冲区
s.send() 发送TCP消息
s.sendall() 完整的发送TCP消息
s.recvfrom() 接受UDP消息
s.recvfrom_into() 接受UDP消息到指定缓冲区
s.sendto() 发送UDP消息
s.getpeername() 连接到套接字(TCP)的远程地址
s.getsockname() 当前套接字地址
s.getsockopt() 返回给定套接字选项的值
s.setsockopt() 设置给定套接字选项的值
s.shutdown() 关闭连接
s.close() 关闭套接字
s.detach() 在未关闭文件描述符的情况下关闭套接字,返回文件描述符
s.ioctl() 控制套接字的模式(仅window)
4、面向阻塞的套接字方法
5、面向文件的套接字方法
3、TCP
1、tcp服务端
1 | from socket import * |
2、tcp客户端
1 | from socket import * |
4、UDP
1、udp服务端
1 | from socket import * |
2、udp客户端
1 | from socket import * |