| Элемент перечисления 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).
Ссылка на скачивание - внизу страницы.