Giống như @Peter cho biết, netstat
sử dụng hệ thống tệp proc để thu thập thông tin mạng, đặc biệt là ràng buộc cổng. LuaSockets có thư viện riêng để truy xuất thông tin kết nối. Ví dụ,
Nghe bạn có thể sử dụng master:listen(backlog)
trong đó xác định các ổ cắm sẵn sàng nhận các kết nối, chuyển các đối tượng vào một đối tượng máy chủ. Các đối tượng máy chủ hỗ trợ chấp nhận, getockname, setoption, settimeout và các phương thức đóng. Thông số backlog chỉ định số lượng kết nối máy khách có thể được xếp hàng chờ đợi dịch vụ. Nếu hàng đợi đầy và máy khách khác thử kết nối, kết nối sẽ bị từ chối. Trong trường hợp thành công, phương thức trả về 1. Trong trường hợp lỗi, phương thức trả về nil theo sau là một thông báo lỗi.
Các phương pháp sau sẽ trả về một chuỗi có địa chỉ IP cục bộ và một số với cổng . Trong trường hợp lỗi, phương thức trả về nil.
master:getsockname()
client:getsockname()
server:getsockname()
Ngoài ra còn tồn tại phương pháp này: client:getpeername()
Đó sẽ trả về một chuỗi với địa chỉ IP của bạn bè, tiếp theo là cổng số đó ngang được sử dụng cho kết nối. Trong trường hợp lỗi, phương thức trả về nil.
Đối với "CLOSE_WAIT", "THÀNH LẬP" hoặc thông tin kết nối khác mà bạn muốn truy xuất, vui lòng đọc Official Documentation. Nó có mọi thứ bạn cần với giải thích ngắn gọn về các phương pháp.
Nguồn
2017-09-14 18:46:53
Tại sao? Chắc chắn bạn đã biết tình trạng của ổ cắm của riêng bạn? Nếu bạn gọi là 'listen()', nó là LISTENING; nếu bạn gọi là 'connect()' hoặc 'accept()', nó được thành lập; nếu nó đã nhận và kết thúc luồng, nó sẽ ở trong CLOSE_WAIT. – EJP
@EJP Câu hỏi không nói rằng ổ cắm được sở hữu bởi cùng một quá trình tạo truy vấn. Thậm chí sau đó, bạn không thể dễ dàng phỏng đoán một số tiểu bang - ví dụ: TIME_WAIT - không truy vấn hạt nhân. –