ProtocolType Enumeration
Specifies the protocols that the Socket class supports.
[Visual Basic] <Serializable> Public Enum ProtocolType [C#] [Serializable] public enum ProtocolType [C++] [Serializable] __value public enum ProtocolType [JScript] public Serializable enum ProtocolType
Remarks
The Socket class uses the ProtocolType enumeration to inform the Windows Socket API of the requested protocol. Low-level driver software for the requested protocol must be present on the computer for the Socket to be created successfully.
Members
| Member name | Description |
|---|---|
| Ggp Supported by the .NET Compact Framework. | Gateway To Gateway Protocol. |
| Icmp Supported by the .NET Compact Framework. | Internet Control Message Protocol. |
| Idp Supported by the .NET Compact Framework. | IDP Protocol. |
| Igmp Supported by the .NET Compact Framework. | Internet Group Management Protocol. |
| IP Supported by the .NET Compact Framework. | Internet Protocol. |
| IPv6 | |
| Ipx Supported by the .NET Compact Framework. | IPX Protocol. |
| ND Supported by the .NET Compact Framework. | Net Disk Protocol (unofficial). |
| Pup Supported by the .NET Compact Framework. | PUP Protocol. |
| Raw Supported by the .NET Compact Framework. | Raw UP packet protocol. |
| Spx Supported by the .NET Compact Framework. | SPX Protocol. |
| SpxII Supported by the .NET Compact Framework. | SPX Version 2 Protocol. |
| Tcp Supported by the .NET Compact Framework. | Transmission Control Protocol. |
| Udp Supported by the .NET Compact Framework. | User Datagram Protocol. |
| Unknown Supported by the .NET Compact Framework. | Unknown protocol. |
| Unspecified Supported by the .NET Compact Framework. | Unspecified protocol. |
Example
[Visual Basic, C#, C++] The following example demonstrates how to use ProtocolType to instantiate a Socket.
[Visual Basic] Imports System Imports System.Text Imports System.IO Imports System.Net Imports System.Net.Sockets _ Public Class Sample Public Shared Function DoSocketGet(server As String) As String 'Set up variables and String to write to the server. Dim ASCII As Encoding = Encoding.ASCII Dim [Get] As String = "GET / HTTP/1.1" + ControlChars.Lf + ControlChars.NewLine + "Host: " + server + ControlChars.Lf + ControlChars.NewLine + "Connection: Close" + ControlChars.Lf + ControlChars.NewLine + ControlChars.Lf + ControlChars.NewLine Dim ByteGet As [Byte]() = ASCII.GetBytes([Get]) Dim RecvBytes(256) As [Byte] Dim strRetPage As [String] = Nothing ' IPAddress and IPEndPoint represent the endpoint that will ' receive the request. ' Get first IPAddress in list return by DNS. Try ' Define those variables to be evaluated in the next for loop and ' then used to connect to the server. These variables are defined ' outside the for loop to make them accessible there after. Dim s As Socket = Nothing Dim hostEndPoint As IPEndPoint Dim hostAddress As IPAddress = Nothing Dim conPort As Integer = 80 ' Get DNS host information. Dim hostInfo As IPHostEntry = Dns.Resolve(server) ' Get the DNS IP addresses associated with the host. Dim IPaddresses As IPAddress() = hostInfo.AddressList ' Evaluate the socket and receiving host IPAddress and IPEndPoint. Dim index As Integer = 0 For index = 0 To IPaddresses.Length - 1 hostAddress = IPaddresses(index) hostEndPoint = New IPEndPoint(hostAddress, conPort) ' Creates the Socket to send data over a TCP connection. s = New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) ' Connect to the host using its IPEndPoint. s.Connect(hostEndPoint) If Not s.Connected Then ' Connection failed, try next IPaddress. strRetPage = "Unable to connect to host" s = Nothing GoTo ContinueFor1 End If ' Sent the GET request to the host. s.Send(ByteGet, ByteGet.Length, 0) ContinueFor1: Next index ' End of the for loop. ' Receive the host home page content and loop until all the data is received. 'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0) Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0) strRetPage = "Default HTML page on " + server + ":\r\n" strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine Dim i As Integer While bytes > 0 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0) strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes) End While ' End of the try block. Catch e As SocketException Console.WriteLine("SocketException caught!!!") Console.WriteLine(("Source : " + e.Source)) Console.WriteLine(("Message : " + e.Message)) Catch e As ArgumentNullException Console.WriteLine("ArgumentNullException caught!!!") Console.WriteLine(("Source : " + e.Source)) Console.WriteLine(("Message : " + e.Message)) Catch e As NullReferenceException Console.WriteLine("NullReferenceException caught!!!") Console.WriteLine(("Source : " + e.Source)) Console.WriteLine(("Message : " + e.Message)) Catch e As Exception Console.WriteLine("Exception caught!!!") Console.WriteLine(("Source : " + e.Source)) Console.WriteLine(("Message : " + e.Message)) End Try Return strRetPage End Function 'DoSocketGet Public Shared Sub Main() Console.WriteLine(DoSocketGet("localhost")) End Sub 'Main End Class 'Sample [C#] using System; using System.Text; using System.IO; using System.Net; using System.Net.Sockets; public class Sample { public static string DoSocketGet(string server) { //Set up variables and String to write to the server. Encoding ASCII = Encoding.ASCII; string Get = "GET / HTTP/1.1\r\nHost: " + server + "\r\nConnection: Close\r\n\r\n"; Byte[] ByteGet = ASCII.GetBytes(Get); Byte[] RecvBytes = new Byte[256]; String strRetPage = null; // IPAddress and IPEndPoint represent the endpoint that will // receive the request. // Get first IPAddress in list return by DNS. try { // Define those variables to be evaluated in the next for loop and // then used to connect to the server. These variables are defined // outside the for loop to make them accessible there after. Socket s = null; IPEndPoint hostEndPoint; IPAddress hostAddress = null; int conPort = 80; // Get DNS host information. IPHostEntry hostInfo = Dns.Resolve(server); // Get the DNS IP addresses associated with the host. IPAddress[] IPaddresses = hostInfo.AddressList; // Evaluate the socket and receiving host IPAddress and IPEndPoint. for (int index=0; index<IPaddresses.Length; index++) { hostAddress = IPaddresses[index]; hostEndPoint = new IPEndPoint(hostAddress, conPort); // Creates the Socket to send data over a TCP connection. s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); // Connect to the host using its IPEndPoint. s.Connect(hostEndPoint); if (!s.Connected) { // Connection failed, try next IPaddress. strRetPage = "Unable to connect to host"; s = null; continue; } // Sent the GET request to the host. s.Send(ByteGet, ByteGet.Length, 0); } // End of the for loop. // Receive the host home page content and loop until all the data is received. Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0); strRetPage = "Default HTML page on " + server + ":\r\n"; strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes); while (bytes > 0) { bytes = s.Receive(RecvBytes, RecvBytes.Length, 0); strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes); } } // End of the try block. catch(SocketException e) { Console.WriteLine("SocketException caught!!!"); Console.WriteLine("Source : " + e.Source); Console.WriteLine("Message : " + e.Message); } catch(ArgumentNullException e) { Console.WriteLine("ArgumentNullException caught!!!"); Console.WriteLine("Source : " + e.Source); Console.WriteLine("Message : " + e.Message); } catch(NullReferenceException e) { Console.WriteLine("NullReferenceException caught!!!"); Console.WriteLine("Source : " + e.Source); Console.WriteLine("Message : " + e.Message); } catch(Exception e) { Console.WriteLine("Exception caught!!!"); Console.WriteLine("Source : " + e.Source); Console.WriteLine("Message : " + e.Message); } return strRetPage; } public static void Main() { Console.WriteLine(DoSocketGet("localhost")); } } [C++] #using <mscorlib.dll> #using <System.dll> using namespace System; using namespace System::Text; using namespace System::IO; using namespace System::Net; using namespace System::Net::Sockets; String *DoSocketGet(String *server) { //Set up variables and String to write to the server. Encoding *ASCII = Encoding::ASCII; String *Get = "GET / HTTP/1.1\r\nHost: "; Get->Concat(server, "\r\nConnection: Close\r\n\r\n"); Byte ByteGet[] = ASCII->GetBytes(Get); Byte RecvBytes[] = new Byte[256]; String *strRetPage = 0; // IPAddress and IPEndPoint represent the endpoint that will // receive the request. // Get first IPAddress in list return by DNS. try { // Define those variables to be evaluated in the next for loop and // then used to connect to the server. These variables are defined // outside the for loop to make them accessible there after. Socket *s = 0; IPEndPoint *hostEndPoint; IPAddress *hostAddress = 0; int conPort = 80; // Get DNS host information. IPHostEntry *hostInfo = Dns::Resolve(server); // Get the DNS IP addresses associated with the host. IPAddress *IPaddresses[] = hostInfo->AddressList; // Evaluate the socket and receiving host IPAddress and IPEndPoint. for (int index=0; index<IPaddresses->Length; index++) { hostAddress = IPaddresses[index]; hostEndPoint = new IPEndPoint(hostAddress, conPort); // Creates the Socket to send data over a TCP connection. s = new Socket(AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp ); // Connect to the host using its IPEndPoint. s->Connect(hostEndPoint); if (!s->Connected) { // Connection failed, try next IPaddress. strRetPage = "Unable to connect to host"; s = 0; continue; } // Sent the GET request to the host. s->Send(ByteGet, ByteGet->Length, SocketFlags::None); } // End of the for loop. // Receive the host home page content and loop until all the data is received. Int32 bytes = s->Receive(RecvBytes, RecvBytes->Length, SocketFlags::None); strRetPage = "Default HTML page on "; strRetPage->Concat(server, ":\r\n", ASCII->GetString(RecvBytes, 0, bytes)); while (bytes > 0) { bytes = s->Receive(RecvBytes, RecvBytes->Length, SocketFlags::None); strRetPage->Concat(ASCII->GetString(RecvBytes, 0, bytes)); } } // End of the try block. catch(SocketException *e) { Console::WriteLine("SocketException caught!!!"); Console::Write("Source : "); Console::WriteLine(e->Source); Console::Write("Message : "); Console::WriteLine(e->Message); } catch(ArgumentNullException *e) { Console::WriteLine("ArgumentNULLException caught!!!"); Console::Write("Source : "); Console::WriteLine(e->Source); Console::Write("Message : "); Console::WriteLine(e->Message); } catch(NullReferenceException *e) { Console::WriteLine("NULLReferenceException caught!!!"); Console::Write("Source : "); Console::WriteLine(e->Source); Console::Write("Message : "); Console::WriteLine(e->Message); } catch(Exception *e) { Console::WriteLine("Exception caught!!!"); Console::Write("Source : "); Console::WriteLine(e->Source); Console::Write("Message : "); Console::WriteLine(e->Message); } return strRetPage; } int main() { Console::WriteLine(DoSocketGet("localhost")); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Net.Sockets
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: System (in System.dll)