5
Tôi đang sử dụng fsockopen()
để gửi dữ liệu thông qua giao thức TCP đến một máy chủ từ xa:Detect kết nối hủy bỏ vào một ổ cắm mở bởi fsockopen()
$s = fsockopen($host, $port);
fwrite($s, $data);
fclose($s);
Làm thế nào tôi có thể phát hiện sau đó nếu kết nối bị đóng lại (với một FIN) hoặc bị hủy bỏ (với RST) bởi máy chủ từ xa?
Đáng ngại, bạn không thể (AFAIK). Bạn có thể phát hiện xem socket đã được đóng * hay * bị hủy bỏ trước cuộc gọi của bạn 'fclose()' với 'feof()', nhưng bạn không thể xác định được nó là gì. Mặc dù tôi tự hỏi làm thế nào hữu ích thông tin này sẽ được, sau khi tất cả một ổ cắm chết là một ổ cắm chết, không có vấn đề gì xảy ra với nó. – DaveRandom