1.基本知识:
Python 中的 socket
模块提供了网络通信的基础,允许程序通过网络进行数据传输。它实现了不同类型的套接字(socket)以支持不同的通信方式。以下是该模块的一些主要特性和用法。
2.创建套接字
要使用 socket
模块,首先需要创建一个套接字。可以使用 socket.socket()
函数来创建一个新的套接字对象
import socket
# 创建一个TCP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 创建一个UDP套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
3.设置套接字选项
使用 setsockopt()
函数可以设置套接字的选项,例如启用重用地址、超时等。
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
4.绑定和监听
在使用套接字之前,需要将其绑定到一个特定的地址和端口。对于服务器,通常需要监听传入的连接请求。
server_address = ('localhost', 8080)
server_socket.bind(server_address)
server_socket.listen(5)
5.连接
对于客户端,使用 connect()
方法连接到服务器。
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_address = ('localhost', 8080)
client_socket.connect(server_address)
6.接受连接
对于服务器,使用 accept()
方法接受传入的连接请求,并返回新的套接字和客户端地址。
client_socket, client_address = server_socket.accept()
7.发送和接收数据
一旦建立连接,可以使用 send()
和 recv()
方法发送和接收数据。
# 发送数据
client_socket.send(b'Hello, server!')
# 接收数据
data = client_socket.recv(1024)
8.关闭套接字
使用 close()
方法关闭套接字。
server_socket.close()
client_socket.close()