import socket
# 创建一个TCP/IP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定套接字到地址和端口
server_address = ('localhost', 10000)
print(f'Starting up on {server_address[0]} port {server_address[1]}')
server_socket.bind(server_address)
# 监听传入连接
server_socket.listen(1)
while True:
# 等待连接
print('Waiting for a connection...')
connection, client_address = server_socket.accept()
try:
print(f'Connection from {client_address}')
# 接收数据
while True:
data = connection.recv(16)
print(f'Received "{data.decode()}"')
if data:
print('Sending data back to the client...')
connection.sendall(data)
else:
print('No more data from', client_address)
break
finally:
# 清理连接
connection.close()
创建套接字:
socket.socket() 创建一个 TCP 套接字,socket.AF_INET 表示使用 IPv4 地址,socket.SOCK_STREAM 表示使用 TCP 协议。绑定地址和端口:
bind() 方法将套接字绑定到指定的地址和端口。这里我们绑定了本地地址 localhost 和端口 10000。监听连接:
listen() 方法使服务器开始监听传入连接,参数 1 表示最多允许 1 个排队的连接请求。接受连接:
accept() 方法等待并接受客户端的连接请求。返回一个包含连接对象和客户端地址的元组。接收和发送数据:
recv() 方法从连接中接收数据,16 表示每次最多接收 16 字节的数据。sendall() 方法将数据回传给客户端。清理连接:
close() 方法关闭连接,确保资源被正确释放。这个示例代码实现了一个简单的 TCP 服务器,它会监听来自客户端的连接请求,并将接收到的数据原样回传给客户端。
上一篇:python requests库
下一篇:python __file__
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站