简要步骤
使用socket实现通信的过程通常包括以下步骤:
- 创建Socket对象:在服务器端,使用
socket.socket()
函数创建一个Socket对象;在客户端,使用socket.socket()
函数创建一个Socket对象。 - 绑定地址和端口:在服务器端,使用
bind()
方法将Socket对象绑定到一个IP地址和端口上;在客户端,不需要绑定地址和端口。 - 监听连接请求:在服务器端,使用
listen()
方法开始监听连接请求。 - 接受连接请求:在服务器端,使用
accept()
方法接受客户端的连接请求,返回一个新的Socket对象和客户端的地址;在客户端,不需要接受连接请求。 - 发送和接收数据:使用
send()
方法发送数据,使用recv()
方法接收数据。可以使用循环来多次发送和接收数据。 - 关闭连接:使用
close()
方法关闭Socket连接。
客户端
import socket
# 创建Socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
server_address = ('localhost', 8888)
client_socket.connect(server_address)
# 发送数据
message = 'Hello, server!'
client_socket.send(message.encode())
# 接收数据
data = client_socket.recv(1024)
print('接收到的数据:', data.decode())
# 关闭连接
client_socket.close()
服务器端
import socket
# 创建Socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
server_address = ('localhost', 8888)
server_socket.bind(server_address)
# 监听连接请求
server_socket.listen(1)
print('等待客户端连接...')
# 接受连接请求
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)
# 接收数据
data = client_socket.recv(1024)
print('接收到的数据:', data.decode())
# 发送数据
message = 'Hello, client!'
client_socket.send(message.encode())
# 关闭连接
client_socket.close()
server_socket.close()