select实现tcp并发服务器保存客户端的ip
时间: 2024-09-23 19:05:28 浏览: 41
linux并发回音服务器与客户端
在TCP并发服务器中,如果需要保存每个连接的客户端IP,通常会在服务器端的`accept()`函数处理新连接时获取客户端的信息。在很多编程语言中,如Python的socket库,可以这样做:
```python
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('localhost', 8000))
server.listen(5)
while True:
client, addr = server.accept()
print(f"Accepted connection from {addr[0]}:{addr[1]}")
# 创建新的套接字用于和客户端通信,并保存客户端地址信息
client_handler = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_handler.connect(addr) # 连接到客户端
# 可能需要读取客户端发送的数据,获取IP等信息
client_ip = client.getpeername()[0] # 获取客户端的IP地址
# ...其他操作...
# 现在开始处理客户端请求
client_handler.send("Hello, Client!")
# ...后续与客户端交互...
client_handler.close() # 关闭与客户端的连接
```
在这个例子中,`accept()`返回的是一个新的连接(client_socket, (client_addr, port)`),其中`(client_addr, port)`就是客户端的IP和端口。你可以直接从这个元组中提取IP地址。
阅读全文