"{25,-28}{26}: {27,-10}{28}: {29,-10}\n" +
"{30,-28}{31}: {32,-10}{33}: {34,-10}\n" +
"{35,-28}{36}: {37,-10}{38}: {39,-10}\n" +
"{40,-28}{41}: {42,-10}{43}: {44,-10}\n" +
"{45,-28}{46}: {47,-10}{48}: {49,-10}\n" +
"{50,-28}{51}: {52,-10}{53}: {54,-10}\n" +
"{55,-28}{56}: {57,-10}{58}: {59,-10}\n" +
"{60,-28}{61}: {62,-10}{63}: {64,-10}\n",
" Messages", snt, s.MessagesSent, rec, s.MessagesReceived,
" Errors", snt, s.ErrorsSent, rec, s.ErrorsReceived,
" Echo Requests", snt, s.EchoRequestsSent, rec, s.EchoRequestsReceived,
" Echo Replies", snt, s.EchoRepliesSent, rec, s.EchoRepliesReceived,
" Destination Unreachables", snt, s.DestinationUnreachableMessagesSent, rec,
s.DestinationUnreachableMessagesReceived,
" Source Quenches", snt, s.SourceQuenchesSent, rec, s.SourceQuenchesReceived,
" Redirects", snt, s.RedirectsSent, rec, s.RedirectsReceived,
" TimeExceeded", snt, s.TimeExceededMessagesSent, rec, s.TimeExceededMessagesReceived,
" Parameter Problems", snt, s.ParameterProblemsSent, rec, s.ParameterProblemsReceived,
" Timestamp Requests", snt, s.TimestampRequestsSent, rec, s.TimestampRequestsReceived,
" Timestamp Replies", snt, s.TimestampRepliesSent, rec, s.TimestampRepliesReceived,
" Address Mask Requests", snt, s.AddressMaskRequestsSent, rec,
s.AddressMaskRequestsReceived,
" Address Mask Replies", snt, s.AddressMaskRepliesSent, rec,
s.AddressMaskRepliesReceived);
Здесь вы также видите множество характеристик соединения, среди которых хочется отметить лишь некоторые. Понятие сорванных сообщений (source quench messages) используется для обозначения тех из них, которые были нарушены из-за потери пакетов (нехватки места в выходном буфере или слишком большой скорости прихода пакетов). Принимающий узел посылает сообщение (source quench), если он не справляется с потоком приходящих пакетов. Посылающий узел воспринимает его, как запрос снизить скорость передачи. Перенаправления (redirect messages) посылаются маршрутизаторами для того, чтобы информировать источник о существовании лучшего маршрута к узлу назначения.
Если в данный момент создано и функционирует соединение, то вы можете получить сведения о его параметрах и состоянии с помощью классов IPGlobalProperties и TcpConnectionInformation.
TcpConnectionInformation[] connections = p.GetActiveTcpConnections();
if (connections.Length == 0)
Console.Write("\nNo connection established" + line.Substring(0, 26));
foreach (TcpConnectionInformation t in connections)
{
Console.Write("\nConnection" + line.Substring(0, 10) +
"\n{0,-28}: {1}\n{2,-28}: {3}\n{4,-28}: {5}\n",
"Local endpoint", t.LocalEndPoint.Address,
"Remote endpoint", t.RemoteEndPoint.Address,
"State", t.State);
}
Класс Socket содержит много методов и свойств, которые позволяют управлять сетевыми соединениями. С его помощью мы можем осуществлять обмен данными как в синхронном, так и в асинхронном режимах, работать с любыми протоколами, перечисленными в enum типа ProtocolType. Следующая таблица рассеивает сомнения в том, что при создании новых технологий люди не обдумывают концепции, не вырабатывают единые подходы, не реализуют их с учетом единых стандартов. Бюрократия не спит и изо всех сил старается упростить нашу жизнь.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.