socket模块
- 创建套接字
- socket()
-
变量名=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
socket.AF_INET表示使用IPV4地址,AF_INET6表示使用IPV6地址
-
socket.SOCK_STREAM表示使用tcp传输协议
-
- 与服务器套接字建立连接
- 套接字名.accept()
- 发送数据
- send()
- 套接字名.send()
- 接收数据
- recv()
-
套接字名.recv()
-
可传入一个整型参数表示对传入的数据进行字节数量控制。如闯入1024表示传入1g的数据。
-
- 关闭套接字
- close()
- 套接字名.close()
- 绑定端口号
- bind()
- 套接字名.bing()
-
如:套接字名.bind(("", 9090))
-
需要输入两个参数,第一个表示ip地址,一般不用指定,第二个表示端口号,这两个参数需要组成一个元组类型放在内部
-
- 设置监听
- listen()
-
套接字名.listen()
-
只需要传入一个参数即可.
-
- 等待请求
- accept()
-
套接字名.accept()
该方法会返回两个值,第一个为客户端的套接字,第二个位客户端的IP和端口号
注意:后续的步骤中要使用到客户端的套接字,所以一定要记得使用变量进行接收。
如:new_client, ip_port = tcp_sever_socket.accept()
- 设置端口复用
- 表示服务端程序退出端口号立即释放
- setsockopt()
- 套接字名.setsockopt()
- 套接字名..setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, True)
- socket.SOL_SOCKET表示当前套接字
- socket.SO_REUSEADDR表示复用端口号的选项
- True表示复用端口号开启,不写默认复用端口号为关闭。