Элемент перечисления ProtocolType |
Протокол |
Ggp |
Gateway To Gateway |
Icmp |
Internet Control Message |
IcmpV6 |
Internet Control Message version 6 |
Idp |
Internet Datagram |
Igmp |
Internet Group Management |
IP |
Internet Protocol |
IPSecAuthenticationHeader |
IPv6 Authentication header. Детали в RFC 2292 section 2.2.1 |
IPSecEncapsulatingSecurityPayload |
IPv6 Encapsulating Security Payload header |
IPv4 |
Internet Protocol version 4 |
IPv6 |
Internet Protocol version 6 (IPv6) |
IPv6DestinationOptions |
IPv6 Destination Options header |
IPv6FragmentHeader |
IPv6 Fragment header |
IPv6HopByHopOptions |
IPv6 Hop by Hop Options header |
IPv6NoNextHeader |
IPv6 No next header |
IPv6RoutingHeader |
IPv6 Routing header |
Ipx |
Internet Packet Exchange Protocol |
ND |
Net Disk Protocol (unofficial) |
Pup |
PARC Universal Packet |
Raw |
Raw IP packet |
Spx |
Sequenced Packet Exchange |
SpxII |
Sequenced Packet Exchange version 2 |
Tcp |
Transmission Control Protocol |
Udp |
User Datagram Protocol |
Unknown |
Неизвестный протокол |
Unspecified |
Незарегистрированный протокол |
Рассмотрим пример, иллюстрирующий работу с объектом класса Socket. В нем мы создаем сетевой разъем, соединяем его с локальным компьютером и выводим основные свойства трех объектов: конечного узла соединения, самого разъема (Socket) и вспомогательного объекта класса SocketAddress, который часто используется в сетевых приложениях для опроса текущего состояния разъема.
public static void Main()
{
try
{
IPHostEntry host = Dns.GetHostEntry (Dns.GetHostName());//"localhost"
foreach (IPAddress address in host.AddressList)
{
IPEndPoint point = new IPEndPoint (address, 80);
Socket socket=new Socket(point.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(point);
if (socket.Connected)
{
Console.WriteLine("\n End Point Info\n" +
"\n{0,-20}: {1}\n{2,-20}: {3}\n{4,-20}: {5}\n{6,-20}: {7}\n",
"End Point", point.ToString(),
"Address", point.Address,
"AddressFamily", point.AddressFamily,
"Port", point.Port);
Console.WriteLine("\n Socket Info\n" +
"\n{0,-20}: {1}\n{2,-20}: {3}\n{4,-20}: {5}\n{6,-20}: {7}" +
"\n{8,-20}: {9}\n{10,-20}: {11}\n{12,-20}: {13}\n{14,-20}: {15}" +
"\n{16,-20}: {17}\n{18,-20}: {19}\n",
"SocketType", socket.SocketType,
"Protocol Type", socket.ProtocolType,
"Local EndPoint", socket.LocalEndPoint,
"Remote EndPoint", socket.RemoteEndPoint,
"Socket Handle", socket.Handle,
"Is in Blocking Mode", socket.Blocking,
"Send Timeout", socket.SendTimeout,
"Receive Timeout", socket.ReceiveTimeout,
"Send BufferSize", socket.SendBufferSize,
"Receive BufferSize", socket.ReceiveBufferSize);
SocketAddress socketAddress = point.Serialize();
Console.WriteLine("\n Serialized endpoint\n" +
"\n{0,-20}: {1}\n{2,-20}: {3}\n{4,-20}: {5}\n",
"String", socketAddress.ToString(),
"First byte", socketAddress[0],
"Family", socketAddress.Family,
"Size", socketAddress.Size);
Console.WriteLine("\n SocketAddress Bytes\n");
for (int i = 0; i < socketAddress.Size; i++)
Console.Write("{0}, ", socketAddress[i]);
}
socket.Close();
}
}
catch (SocketException e)
{
Console.WriteLine("Source: {0}\nMessage: {1}", e.Source, e.Message);
}
Console.WriteLine("\n\n");
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.