Python 中的套接字编程介绍

2023-04-04 00:00:00 python 编程 介绍

Python 中的套接字编程是一种用于网络通信的基本技术,它使用套接字(socket)来实现。套接字是一种抽象概念,可以用来描述网络通信中的两个端点,其中一个端点是服务器,另一个端点是客户端。

Python 的标准库中提供了 socket 模块,使用该模块可以轻松地实现套接字编程。下面是套接字编程的一些常用操作:

创建套接字:

import socket

# 创建 TCP 套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 创建 UDP 套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

其中,AF_INET 表示使用 IPv4 地址族,SOCK_STREAM 表示使用流式套接字(用于 TCP 协议),SOCK_DGRAM 表示使用数据报套接字(用于 UDP 协议)。

绑定套接字:

# 绑定 TCP 套接字
tcp_socket.bind(('localhost', 8888))

# 绑定 UDP 套接字
udp_socket.bind(('localhost', 8888))

其中,bind() 方法用于将套接字绑定到指定的地址和端口号。

监听连接请求:

# 监听 TCP 连接请求
tcp_socket.listen()

# 监听 UDP 数据报
udp_data, client_addr = udp_socket.recvfrom(1024)

其中,listen() 方法用于开始监听客户端的连接请求,recvfrom() 方法用于接收客户端发送的数据报。

接受连接请求:

# 接受 TCP 连接请求
client_socket, client_addr = tcp_socket.accept()

# 接受 UDP 数据报
udp_data, client_addr = udp_socket.recvfrom(1024)

其中,accept() 方法用于接受客户端的连接请求。

发送数据:

# 发送 TCP 数据
tcp_socket.send('Hello pidancode.com'.encode())

# 发送 UDP 数据
udp_socket.sendto('Hello 皮蛋编程'.encode(), ('localhost', 8888))

其中,send() 方法用于发送 TCP 数据,sendto() 方法用于发送 UDP 数据。

接收数据:

# 接收 TCP 数据
tcp_data = client_socket.recv(1024)

# 接收 UDP 数据
udp_data, client_addr = udp_socket.recvfrom(1024)

其中,recv() 方法用于接收 TCP 数据,recvfrom() 方法用于接收 UDP 数据。

关闭套接字:

# 关闭 TCP 套接字
tcp_socket.close()

# 关闭 UDP 套接字
udp_socket.close()

以上是套接字编程的一些基本操作,可以根据实际需求进行相应的调整和扩展。

相关文章