ProtocolType 列挙体
Socket クラスがサポートするプロトコルを指定します。
<Serializable>
Public Enum ProtocolType
[C#]
[Serializable]
public enum ProtocolType
[C++]
[Serializable]
__value public enum ProtocolType
[JScript]
public
Serializable
enum ProtocolType
解説
Socket クラスは ProtocolType 列挙体を使用して、必要なプロトコルを Windows Socket API に示します。要求されたプロトコルの低レベル ドライバ ソフトウェアは、 Socket を正常に作成するためにコンピュータに存在している必要があります。
メンバ
メンバ名 | 説明 |
---|---|
Ggp
.NET Compact Framework でもサポート。 |
ゲートウェイ間プロトコル。 |
Icmp
.NET Compact Framework でもサポート。 |
インターネット コントロール メッセージ プロトコル。 |
Idp
.NET Compact Framework でもサポート。 |
IDP プロトコル。 |
Igmp
.NET Compact Framework でもサポート。 |
インターネット グループ管理プロトコル。 |
IP
.NET Compact Framework でもサポート。 |
インターネット プロトコル。 |
IPv6 | |
Ipx
.NET Compact Framework でもサポート。 |
IPX プロトコル。 |
ND
.NET Compact Framework でもサポート。 |
Net Disk プロトコル (非公式)。 |
Pup
.NET Compact Framework でもサポート。 |
PUP プロトコル。 |
Raw
.NET Compact Framework でもサポート。 |
Raw UP パケット プロトコル。 |
Spx
.NET Compact Framework でもサポート。 |
SPX プロトコル。 |
SpxII
.NET Compact Framework でもサポート。 |
SPX Version 2 プロトコル。 |
Tcp
.NET Compact Framework でもサポート。 |
伝送制御プロトコル。 |
Udp
.NET Compact Framework でもサポート。 |
ユーザー データグラム プロトコル。 |
Unknown
.NET Compact Framework でもサポート。 |
未確認のプロトコル。 |
Unspecified
.NET Compact Framework でもサポート。 |
指定されていないプロトコル。 |
使用例
[Visual Basic, C#, C++] ProtocolType を使用して Socket をインスタンス化する方法を次の例に示します。
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] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Net.Sockets
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System (System.dll 内)