Это хак, чтобы применять стили только к более старым версиям IE. * Объявленные стили будут переопределять новые элементы стиля, которые не поддерживаются только Od IE. http://en.wikipedia.org/wiki/CSS_filter#Star_hack
Ответ зависит от реализации . Вам нужно будет проверить файлы заголовков реализации tcp в вашей ОС. Вот пример клиента для linux, который возвращает состояние сокета.
ts = TCPSocket.new('localhost', 5777)
ssl = OpenSSL::SSL::SSLSocket.new(ts, OpenSSL::SSL::SSLContext.new)
ssl.sync = true
ssl.connect
# TCP_INFO is 11
# note that TCP_INFO isn't defined in the ruby source.
# i had to look up the integer value in /usr/include/netinet/tcp.h
optval = ts.getsockopt(Socket::SOL_TCP, 11)
state = optval.unpack "i"
puts "state: #{state}"
Вот структура tcp_info для моей последней версии ubuntu linux
struct tcp_info
{
u_int8_t tcpi_state;
u_int8_t tcpi_ca_state;
u_int8_t tcpi_retransmits;
u_int8_t tcpi_probes;
u_int8_t tcpi_backoff;
u_int8_t tcpi_options;
u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
u_int32_t tcpi_rto;
u_int32_t tcpi_ato;
u_int32_t tcpi_snd_mss;
u_int32_t tcpi_rcv_mss;
u_int32_t tcpi_unacked;
u_int32_t tcpi_sacked;
u_int32_t tcpi_lost;
u_int32_t tcpi_retrans;
u_int32_t tcpi_fackets;
/* Times. */
u_int32_t tcpi_last_data_sent;
u_int32_t tcpi_last_ack_sent; /* Not remembered, sorry. */
u_int32_t tcpi_last_data_recv;
u_int32_t tcpi_last_ack_recv;
/* Metrics. */
u_int32_t tcpi_pmtu;
u_int32_t tcpi_rcv_ssthresh;
u_int32_t tcpi_rtt;
u_int32_t tcpi_rttvar;
u_int32_t tcpi_snd_ssthresh;
u_int32_t tcpi_snd_cwnd;
u_int32_t tcpi_advmss;
u_int32_t tcpi_reordering;
u_int32_t tcpi_rcv_rtt;
u_int32_t tcpi_rcv_space;
u_int32_t tcpi_total_retrans;
};
Вы можете заметить, что мой скрипт возвращает только целое число. Вот перечисление C, в котором подробно описаны состояния TCP и их целочисленные значения. Опять же, это было найдено в /usr/include/netinet/tcp.h[1226 identify. Кроме того, этот поток говорит, что вы можете обнаружить CLOSE_WAIT, прочитав EOF. Но поскольку вас беспокоит, были ли отправлены данные, вам, вероятно, придется распаковать до tcpi_last_data_sent.
Наконец, оговорка. Я взял на себя задачу ответить на ваш вопрос, потому что это звучало весело, и это было так, но мои C-ноги все еще шатаются, так что YMMV. :)