Python—网络通信编程之套接字基本原理
Socket()函数的参数详解
Socket()函数的参数有三个:
- 参数一:这个参数含义说明定义的socket实例默认是通过ipv4进行连接的。
- socket.AF_INET: 默认IPv4。使用ipv4进行连接通信。
- socket.AF_INET6:用于IPv6。使用ipv6进行连接通信。
- socket.AF_UNIX:只能够用于单一的Unix系统进程间通信。
- 参数二:前面两个用的多,后面三个用的少。
- socket.SOCK_STREAM:流式套接字,传输层基于tcp协议进行通信。
- socket.SOCK_DGRAM:数据报套接字,传输层基于udp协议进行通信。
- socket.SOCK_RAW: 原始套接字,访问底层协议的套接字。
- socket.SOCK_RDM: 可靠UDP形式。
- socket.SOCK_SEQPACKET:可靠的连续数据包服务。
- 参数三:协议号。
- 0:默认,可以省略。
- CAN_RAW或CAN_BCM:地址族为AF_CAN时。
套接字属性
import socket server = socket.socket() server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) # 设置端口立即重用 print(server.getsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR)) # 获取选项值:1 print(server.fileno()) # 套接字描述符:3 print(server.type) # 套接字类型:SocketKind.SOCK_STREAM server.bind(('127.0.0.1',3120)) print(server.getsockname()) # 获取绑定的地址:('127.0.0.1', 3120) server.listen(5) conn, addr = server.accept() print(conn.getpeername()) # 获取客户端的地址:('127.0.0.1', 57158)
https://www.cnblogs.com/ftl1012/p/9384449.html
https://www.cnblogs.com/aspirant/p/9166944.html
https://www.sooele.com/1410.html
https://www.jb51.net/article/111899.htm
https://www.linuxidc.com/Linux/2017-09/146988.htm
https://www.cnblogs.com/JohnABC/p/6076006.html
https://blog.csdn.net/zhuangzi123456/article/details/84400108
https://blog.csdn.net/wuchuanpingstone/article/details/82964256