import socket
# 创建一个TCP/IP套接字
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定套接字到地址和端口
server_address = ('localhost', 10000)
print(f'starting up on {server_address[0]} port {server_address[1]}')
sock.bind(server_address)
# 监听传入连接
sock.listen(1)
while True:
# 等待连接
print('waiting for a connection')
connection, client_address = sock.accept()
try:
print(f'connection from {client_address}')
# 接收数据
while True:
data = connection.recv(16)
print(f'received {data}')
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(socket.AF_INET, socket.SOCK_STREAM) 创建了一个TCP/IP套接字,使用IPv4地址族 (AF_INET) 和流式套接字类型 (SOCK_STREAM)。sock.bind(server_address) 将套接字绑定到指定的地址和端口。这里我们使用的是本地主机 (localhost) 和端口 10000。sock.listen(1) 让套接字开始监听传入连接,参数 1 表示允许的最大排队连接数。connection, client_address = sock.accept() 阻塞等待客户端连接,当有客户端连接时返回一个新的套接字对象 connection 和客户端地址 client_address。while 循环中,服务器从客户端接收数据并将其回送回去。如果收到的数据为空,则表示客户端关闭了连接。finally 块中的代码,确保连接被正确关闭。这个示例展示了如何使用Python的 socket 库创建一个简单的TCP服务器。
上一篇:python ndarray
下一篇:set在python中代表什么
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站