Socket クラス

定義

Berkeley ソケット インターフェイスを実装します。Implements the Berkeley sockets interface.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
継承
Socket
実装

次のコード例では、Socket クラスを使用して HTTP サーバーにデータを送信し、応答を受信する方法を示します。The following code example shows how the Socket class can be used to send data to an HTTP server and receive the response. この例では、ページ全体が受信されるまでブロックします。This example blocks until the entire page is received.

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::IO;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Collections;
Socket^ ConnectSocket( String^ server, int port )
{
   Socket^ s = nullptr;
   IPHostEntry^ hostEntry = nullptr;
   
   // Get host related information.
   hostEntry = Dns::Resolve( server );
   
   // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
   // an exception that occurs when the host IP Address is not compatible with the address family
   // (typical in the IPv6 case).
   IEnumerator^ myEnum = hostEntry->AddressList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      IPAddress^ address = safe_cast<IPAddress^>(myEnum->Current);
      IPEndPoint^ endPoint = gcnew IPEndPoint( address,port );
      Socket^ tmpS = gcnew Socket( endPoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp );
      tmpS->Connect( endPoint );
      if ( tmpS->Connected )
      {
         s = tmpS;
         break;
      }
      else
      {
         continue;
      }
   }

   return s;
}

// This method requests the home page content for the specified server.
String^ SocketSendReceive( String^ server, int port )
{
   String^ request = String::Concat( "GET / HTTP/1.1\r\nHost: ", server, "\r\nConnection: Close\r\n\r\n" );
   array<Byte>^bytesSent = Encoding::ASCII->GetBytes( request );
   array<Byte>^bytesReceived = gcnew array<Byte>(256);
   String^ strRetPage = "";
   
   // Create a socket connection with the specified server and port.
   Socket^ s = ConnectSocket( server, port );
   if ( s == nullptr )
      return ("Connection failed");
   
   // Send request to the server.
   s->Send( bytesSent, bytesSent->Length, static_cast<SocketFlags>(0) );
   
   // Receive the server home page content.
   int bytes = 0;
   strRetPage = String::Concat( "Default HTML page on ", server, ":\r\n" );
   do
   {
      bytes = s->Receive( bytesReceived, bytesReceived->Length, static_cast<SocketFlags>(0) );
      strRetPage = String::Concat( strRetPage, Encoding::ASCII->GetString( bytesReceived, 0, bytes ) );
   }
   while ( bytes > 0 );
   
   s->Dispose();

   return strRetPage;
}

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   String^ host;
   int port = 80;
   if ( args->Length == 1 )
      
   // If no server name is passed as argument to this program, 
   // use the current host name as default.
   host = Dns::GetHostName();
   else
      host = args[ 1 ];

   String^ result = SocketSendReceive( host, port );
   Console::WriteLine( result );
}
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class GetSocket
{
    private static Socket ConnectSocket(string server, int port)
    {
        Socket s = null;
        IPHostEntry hostEntry = null;
        
        // Get host related information.
        hostEntry = Dns.GetHostEntry(server);

        // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
        // an exception that occurs when the host IP Address is not compatible with the address family
        // (typical in the IPv6 case).
        foreach(IPAddress address in hostEntry.AddressList)
        {
            IPEndPoint ipe = new IPEndPoint(address, port);
            Socket tempSocket = 
                new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipe);

            if(tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }
        return s;
    }

    // This method requests the home page content for the specified server.
    private static string SocketSendReceive(string server, int port) 
    {
        string request = "GET / HTTP/1.1\r\nHost: " + server + 
            "\r\nConnection: Close\r\n\r\n";
        Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
        Byte[] bytesReceived = new Byte[256];
        string page = "";
        
        // Create a socket connection with the specified server and port.
        using(Socket s = ConnectSocket(server, port)) {

            if (s == null)
                return ("Connection failed");
        
            // Send request to the server.
            s.Send(bytesSent, bytesSent.Length, 0);  
            
            // Receive the server home page content.
            int bytes = 0;
            page = "Default HTML page on " + server + ":\r\n";

            // The following will block until the page is transmitted.
            do {
                bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
                page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
            }
            while (bytes > 0);
        }
        
        return page;
    }
    
    public static void Main(string[] args) 
    {
        string host;
        int port = 80;

        if (args.Length == 0)
            // If no server name is passed as argument to this program, 
            // use the current host name as the default.
            host = Dns.GetHostName();
        else
            host = args[0];

        string result = SocketSendReceive(host, port); 
        Console.WriteLine(result);
    }
}

Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets

Public Class GetSocket
   
   Private Shared Function ConnectSocket(server As String, port As Integer) As Socket
      Dim s As Socket = Nothing
      Dim hostEntry As IPHostEntry = Nothing      
     
         ' Get host related information.
        hostEntry = Dns.GetHostEntry(server)
         
         ' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
         ' an exception that occurs when the host host IP Address is not compatible with the address family
         ' (typical in the IPv6 case).
      Dim address As IPAddress
 
        For Each address In  hostEntry.AddressList
            Dim endPoint As New IPEndPoint(address, port)
            Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
      
            tempSocket.Connect(endPoint)
            
            If tempSocket.Connected Then
               s = tempSocket
               Exit For
            End If

         Next address
      
      Return s
   End Function
   
   ' This method requests the home page content for the specified server.
   
   Private Shared Function SocketSendReceive(server As String, port As Integer) As String
      'Set up variables and String to write to the server.
      Dim ascii As Encoding = Encoding.ASCII
      Dim request As String = "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf
      Dim bytesSent As [Byte]() = ascii.GetBytes(request)
      Dim bytesReceived(255) As [Byte]
      Dim page As String = ""  
      
      ' Create a socket connection with the specified server and port.
      Dim s As Socket = ConnectSocket(server, port)
      
      If s Is Nothing Then
         Return "Connection failed"
      End If 
      ' Send request to the server.
      s.Send(bytesSent, bytesSent.Length, 0)
      
      ' Receive the server  home page content.
      Dim bytes As Int32
      
      ' Read the first 256 bytes.
      page = "Default HTML page on " + server + ":" + ControlChars.Cr + ControlChars.Lf
      
      ' The following will block until the page is transmitted.
      Do
         bytes = s.Receive(bytesReceived, bytesReceived.Length, 0)
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes)
      Loop While bytes > 0
      
      Return page
   End Function 
   
   'Entry point which delegates to C-style main Private Function
   Public Overloads Shared Sub Main()
      Main(System.Environment.GetCommandLineArgs())
   End Sub
   
   Overloads Private Shared Sub Main(args() As String)
      Dim host As String
      Dim port As Integer = 80
      
      If args.Length = 1 Then
         ' If no server name is passed as argument to this program, 
         ' use the current host name as default.
         host = Dns.GetHostName()
      Else
         host = args(1)
      End If 
      
      Dim result As String = SocketSendReceive(host, port)
      
      Console.WriteLine(result)
   End Sub
End Class  

注釈

Socket クラスは、ネットワーク通信用の豊富なメソッドとプロパティのセットを提供します。The Socket class provides a rich set of methods and properties for network communications. Socket クラスを使用すると、ProtocolType 列挙に示されているいずれかの通信プロトコルを使用して、同期データ転送と非同期データ転送の両方を実行できます。The Socket class allows you to perform both synchronous and asynchronous data transfer using any of the communication protocols listed in the ProtocolType enumeration.

Socket クラスは、非同期メソッドの .NET Framework の名前付けパターンに従います。The Socket class follows the .NET Framework naming pattern for asynchronous methods. たとえば、同期 Receive メソッドは、非同期の BeginReceive メソッドと EndReceive メソッドに対応します。For example, the synchronous Receive method corresponds to the asynchronous BeginReceive and EndReceive methods.

アプリケーションで実行中に必要なスレッドが1つだけの場合は、次のメソッドを使用します。これらのメソッドは、同期操作モード用に設計されています。If your application only requires one thread during execution, use the following methods, which are designed for synchronous operation mode.

  • TCP などの接続指向プロトコルを使用している場合、サーバーは Listen 方法を使用して接続をリッスンできます。If you are using a connection-oriented protocol such as TCP, your server can listen for connections using the Listen method. Accept メソッドは、受信接続要求を処理し、リモートホストとデータを通信するために使用できる Socket を返します。The Accept method processes any incoming connection requests and returns a Socket that you can use to communicate data with the remote host. この返された Socket を使用して、Send または Receive メソッドを呼び出します。Use this returned Socket to call the Send or Receive method. ローカル IP アドレスとポート番号を指定する場合は、Listen メソッドを呼び出す前に、Bind メソッドを呼び出します。Call the Bind method prior to calling the Listen method if you want to specify the local IP address and port number. 基になるサービスプロバイダーがフリーポートを割り当てる場合は、ポート番号を0にします。Use a port number of zero if you want the underlying service provider to assign a free port for you. リッスンしているホストに接続する場合は、Connect メソッドを呼び出します。If you want to connect to a listening host, call the Connect method. データを通信するには、Send または Receive メソッドを呼び出します。To communicate data, call the Send or Receive method.

  • UDP などのコネクションレスプロトコルを使用している場合は、接続をリッスンする必要はありません。If you are using a connectionless protocol such as UDP, you do not need to listen for connections at all. ReceiveFrom メソッドを呼び出して、受信データグラムをすべて受け入れます。Call the ReceiveFrom method to accept any incoming datagrams. SendTo メソッドを使用して、リモートホストにデータグラムを送信します。Use the SendTo method to send datagrams to a remote host.

実行中に個別のスレッドを使用して通信を処理するには、非同期操作モード用に設計された次のメソッドを使用します。To process communications using separate threads during execution, use the following methods, which are designed for asynchronous operation mode.

1つのソケットに対して複数の非同期操作を実行する場合、それらの操作は、開始された順序で完了するとは限りません。If you perform multiple asynchronous operations on a socket, they do not necessarily complete in the order in which they are started.

データの送受信が終了したら、Shutdown メソッドを使用して Socketを無効にします。When you are finished sending and receiving data, use the Shutdown method to disable the Socket. Shutdownを呼び出した後、Close メソッドを呼び出して、Socketに関連付けられているすべてのリソースを解放します。After calling Shutdown, call the Close method to release all resources associated with the Socket.

Socket クラスを使用すると、SetSocketOption メソッドを使用して Socket を構成できます。The Socket class allows you to configure your Socket using the SetSocketOption method. GetSocketOption メソッドを使用して、これらの設定を取得します。Retrieve these settings using the GetSocketOption method.

注意

比較的単純なアプリケーションを作成し、最大のパフォーマンスを必要としない場合は、TcpClientTcpListener、および UdpClientの使用を検討してください。If you are writing a relatively simple application and do not require maximum performance, consider using TcpClient, TcpListener, and UdpClient. これらのクラスは、Socket 通信のためのより簡単でわかりやすいインターフェイスを提供します。These classes provide a simpler and more user-friendly interface to Socket communications.

コンストラクター

Socket(AddressFamily, SocketType, ProtocolType)

指定したアドレス ファミリ、ソケットの種類、およびプロトコルを使用して、Socket クラスの新しいインスタンスを初期化します。Initializes a new instance of the Socket class using the specified address family, socket type and protocol.

Socket(SocketInformation)

DuplicateAndClose(Int32) から返された値を指定して、Socket クラスの新しいインスタンスを初期化します。Initializes a new instance of the Socket class using the specified value returned from DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

指定したソケットの種類とプロトコルを使用して、Socket クラスの新しいインスタンスを初期化します。Initializes a new instance of the Socket class using the specified socket type and protocol.

プロパティ

AddressFamily

Socket のアドレス ファミリを取得します。Gets the address family of the Socket.

Available

ネットワークから受信した、読み取り可能なデータ量を取得します。Gets the amount of data that has been received from the network and is available to be read.

Blocking

Socket がブロッキング モードかどうかを示す値を取得または設定します。Gets or sets a value that indicates whether the Socket is in blocking mode.

Connected

最後に実行された Send 操作または Receive 操作の時点で、Socket がリモート ホストに接続されていたかどうかを示す値を取得します。Gets a value that indicates whether a Socket is connected to a remote host as of the last Send or Receive operation.

DontFragment

Socket でインターネット プロトコル (IP) データグラムの断片化を許可するかどうかを指定する Boolean 値を、取得または設定します。Gets or sets a Boolean value that specifies whether the Socket allows Internet Protocol (IP) datagrams to be fragmented.

DualMode

Boolean が IPv4 と IPv6 の両方に使用されるデュアル モード ソケットであるかどうか指定する Socket 値を取得または設定します。Gets or sets a Boolean value that specifies whether the Socket is a dual-mode socket used for both IPv4 and IPv6.

EnableBroadcast

Socket でブロードキャスト パケットの送受信を許可するかどうかを指定する Boolean 値を取得または設定します。Gets or sets a Boolean value that specifies whether the Socket can send or receive broadcast packets.

ExclusiveAddressUse

Socket で 1 つのプロセスだけにポートのバインドを許可するかどうかを指定する Boolean 値を取得または設定します。Gets or sets a Boolean value that specifies whether the Socket allows only one process to bind to a port.

Handle

Socket のオペレーティング システム ハンドルを取得します。Gets the operating system handle for the Socket.

IsBound

Socket が特定のローカル ポートにバインドされているかどうかを示す値を取得します。Gets a value that indicates whether the Socket is bound to a specific local port.

LingerState

Socket で、すべての保留中のデータを送信しようとするときにソケットを遅延して閉じるかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether the Socket will delay closing a socket in an attempt to send all pending data.

LocalEndPoint

ローカル エンドポイントを取得します。Gets the local endpoint.

MulticastLoopback

発信マルチキャスト パケットが送信元アプリケーションに配信されるかどうかを指定する値を取得または設定します。Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.

NoDelay

ストリーム Socket が Nagle アルゴリズムを使用するかどうかを指定する Boolean 値を取得または設定します。Gets or sets a Boolean value that specifies whether the stream Socket is using the Nagle algorithm.

OSSupportsIPv4

基になるオペレーティング システムおよびネットワーク アダプターが、インターネット プロトコル バージョン 4 (IPv4) をサポートするかどうかを示します。Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).

OSSupportsIPv6

基になるオペレーティング システムおよびネットワーク アダプターが、インターネット プロトコル バージョン 6 (IPv6) をサポートするかどうかを示します。Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).

ProtocolType

Socket のプロトコルの種類を取得します。Gets the protocol type of the Socket.

ReceiveBufferSize

Socket の受信バッファーのサイズを指定する値を取得または設定します。Gets or sets a value that specifies the size of the receive buffer of the Socket.

ReceiveTimeout

同期の Receive 呼び出しがタイムアウトするまでの合計時間を指定する値を取得または設定します。Gets or sets a value that specifies the amount of time after which a synchronous Receive call will time out.

RemoteEndPoint

リモート エンドポイントを取得します。Gets the remote endpoint.

SafeHandle

現在の Socket オブジェクトによってカプセル化されているソケット ハンドルを表す SafeSocketHandle を取得します。Gets a SafeSocketHandle that represents the socket handle that the current Socket object encapsulates.

SendBufferSize

Socket の送信バッファーのサイズを指定する値を取得または設定します。Gets or sets a value that specifies the size of the send buffer of the Socket.

SendTimeout

同期の Send 呼び出しがタイムアウトするまでの合計時間を指定する値を取得または設定します。Gets or sets a value that specifies the amount of time after which a synchronous Send call will time out.

SocketType

Socket の型を取得します。Gets the type of the Socket.

SupportsIPv4

現在のホストで IPv4 サポートが使用可能で有効になっているかどうかを示す値を取得します。Gets a value indicating whether IPv4 support is available and enabled on the current host.

SupportsIPv6

互換性のために残されている特定の Dns メンバー向けに、フレームワークが IPv6 をサポートしているかどうかを示す値を取得します。Gets a value that indicates whether the Framework supports IPv6 for certain obsolete Dns members.

Ttl

Socket によって送信されたインターネット プロトコル (IP) パケットの有効期間 (TTL) の値を指定する値を取得または設定します。Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the Socket.

UseOnlyOverlappedIO

ソケットが重複 I/O モードだけを使用する必要があるかどうかを指定します。Specifies whether the socket should only use Overlapped I/O mode.

メソッド

Accept()

新しく作成された接続に対して新しい Socket を作成します。Creates a new Socket for a newly created connection.

AcceptAsync(SocketAsyncEventArgs)

受信接続の試行を受け入れる非同期操作を開始します。Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始します。Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(Int32, AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されるデータの最初のブロックを受信します。Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application.

BeginAccept(Socket, Int32, AsyncCallback, Object)

指定したソケットから受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されるデータの最初のブロックを受信します。Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application.

BeginConnect(EndPoint, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストは IPAddress とポート番号で指定されます。The host is specified by an IPAddress and a port number.

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストは、IPAddress 配列とポート番号で指定されます。The host is specified by an IPAddress array and a port number.

BeginConnect(String, Int32, AsyncCallback, Object)

リモート ホスト接続への非同期要求を開始します。Begins an asynchronous request for a remote host connection. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

BeginDisconnect(Boolean, AsyncCallback, Object)

リモート エンドポイントからの切断の非同期要求を開始します。Begins an asynchronous request to disconnect from a remote endpoint.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

接続されている Socket からの非同期のデータ受信を開始します。Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

接続されている Socket からの非同期のデータ受信を開始します。Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

接続されている Socket からの非同期のデータ受信を開始します。Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

接続されている Socket からの非同期のデータ受信を開始します。Begins to asynchronously receive data from a connected Socket.

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

指定したネットワーク デバイスから、データの非同期の受信を開始します。Begins to asynchronously receive data from a specified network device.

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

指定した SocketFlags を使用し、指定したバイト数のデータの非同期受信を開始して、データ バッファー内の指定した位置に格納します。さらに、エンドポイントとパケット情報を格納します。Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。Sends data asynchronously to a connected Socket.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。Sends data asynchronously to a connected Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。Sends data asynchronously to a connected Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。Sends data asynchronously to a connected Socket.

BeginSendFile(String, AsyncCallback, Object)

UseDefaultWorkerThread フラグを使用して、接続されている Socket オブジェクトにファイル fileName を送信します。Sends the file fileName to a connected Socket object using the UseDefaultWorkerThread flag.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

接続された Socket オブジェクトに、ファイルとデータのバッファーを非同期的に送信します。Sends a file and buffers of data asynchronously to a connected Socket object.

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

特定のリモート ホストにデータを非同期的に送信します。Sends data asynchronously to a specific remote host.

Bind(EndPoint)

Socket をローカル エンドポイントと関連付けます。Associates a Socket with a local endpoint.

CancelConnectAsync(SocketAsyncEventArgs)

リモート ホスト接続への非同期要求を取り消します。Cancels an asynchronous request for a remote host connection.

Close()

Socket 接続を閉じ、関連付けられたすべてのリソースを解放します。Closes the Socket connection and releases all associated resources.

Close(Int32)

Socket 接続を閉じ、すべての関連付けられているリソースを指定したタイムアウトで解放して、キューに置かれたデータの送信を許可します。Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Connect(EndPoint)

リモート ホストへの接続を確立します。Establishes a connection to a remote host.

Connect(IPAddress, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスとポート番号で指定されます。The host is specified by an IP address and a port number.

Connect(IPAddress[], Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスの配列とポート番号で指定されます。The host is specified by an array of IP addresses and a port number.

Connect(String, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

ConnectAsync(SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

リモート ホストに接続する非同期要求を開始します。Begins an asynchronous request for a connection to a remote host.

Disconnect(Boolean)

ソケット接続を閉じ、ソケットを再利用できるようにします。Closes the socket connection and allows reuse of the socket.

DisconnectAsync(SocketAsyncEventArgs)

リモート エンドポイントからの切断の非同期要求を開始します。Begins an asynchronous request to disconnect from a remote endpoint.

Dispose()

Socket クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources used by the current instance of the Socket class.

Dispose(Boolean)

Socket が使用しているアンマネージド リソースを解放します。オプションでマネージド リソースも破棄します。Releases the unmanaged resources used by the Socket, and optionally disposes of the managed resources.

DuplicateAndClose(Int32)

ターゲット プロセスのソケット参照を複製してこのプロセスのソケットを閉じます。Duplicates the socket reference for the target process, and closes the socket for this process.

EndAccept(Byte[], IAsyncResult)

受信接続の試行を非同期的に受け入れ、新しい Socket オブジェクトを作成してリモート ホスト通信を処理します。Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. このメソッドは、転送される初期データを格納するバッファーを返します。This method returns a buffer that contains the initial data transferred.

EndAccept(Byte[], Int32, IAsyncResult)

受信接続の試行を非同期的に受け入れ、新しい Socket オブジェクトを作成してリモート ホスト通信を処理します。Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. このメソッドは、初期データと、転送されたバイト数を格納するバッファーを返します。This method returns a buffer that contains the initial data and the number of bytes transferred.

EndAccept(IAsyncResult)

受信接続の試行を非同期的に受け入れ、新しい Socket を作成してリモート ホスト通信を処理します。Asynchronously accepts an incoming connection attempt and creates a new Socket to handle remote host communication.

EndConnect(IAsyncResult)

保留中の非同期接続要求を終了します。Ends a pending asynchronous connection request.

EndDisconnect(IAsyncResult)

保留中の非同期切断要求を終了します。Ends a pending asynchronous disconnect request.

EndReceive(IAsyncResult)

保留中の非同期読み取りを終了します。Ends a pending asynchronous read.

EndReceive(IAsyncResult, SocketError)

保留中の非同期読み取りを終了します。Ends a pending asynchronous read.

EndReceiveFrom(IAsyncResult, EndPoint)

特定のエンドポイントからの、保留中の非同期読み込みを終了します。Ends a pending asynchronous read from a specific endpoint.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

特定のエンドポイントからの、保留中の非同期読み込みを終了します。Ends a pending asynchronous read from a specific endpoint. また、このメソッドは、EndReceiveFrom(IAsyncResult, EndPoint) よりもパケットに関するより多くの情報を示します。This method also reveals more information about the packet than EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

保留中の非同期送信を終了します。Ends a pending asynchronous send.

EndSend(IAsyncResult, SocketError)

保留中の非同期送信を終了します。Ends a pending asynchronous send.

EndSendFile(IAsyncResult)

ファイルの保留中の非同期送信を終了します。Ends a pending asynchronous send of a file.

EndSendTo(IAsyncResult)

特定の場所への、保留中の非同期送信を終了します。Ends a pending asynchronous send to a specific location.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
Finalize()

Socket クラスによって使用されていたリソースを解放します。Frees resources used by the Socket class.

GetHashCode()

Socket インスタンスのハッシュ値を返します。Returns a hash value for a Socket instance.

GetSocketOption(SocketOptionLevel, SocketOptionName)

指定した Socket オプションの値をオブジェクトとして返します。Returns the value of a specified Socket option, represented as an object.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプション設定をバイト配列として返します。Returns the specified Socket option setting, represented as a byte array.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションの値を配列で返します。Returns the value of the specified Socket option in an array.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
IOControl(Int32, Byte[], Byte[])

数値制御コードを使用して、Socket の下位操作モードを設定します。Sets low-level operating modes for the Socket using numerical control codes.

IOControl(IOControlCode, Byte[], Byte[])

IOControlCode 列挙型を使用して制御コードを指定し、Socket の下位操作モードを設定します。Sets low-level operating modes for the Socket using the IOControlCode enumeration to specify control codes.

Listen(Int32)

Socket をリッスン状態にします。Places a Socket in a listening state.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Poll(Int32, SelectMode)

Socket の状態を確認します。Determines the status of the Socket.

Receive(Byte[])

バインドされた Socket からデータを受信し、受信バッファーに格納します。Receives data from a bound Socket into a receive buffer.

Receive(Byte[], Int32, Int32, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して、受信バッファー内の指定したオフセット位置に格納します。Receives the specified number of bytes from a bound Socket into the specified offset position of the receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して受信バッファーに格納します。Receives the specified number of bytes of data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>)

バインドされた Socket からデータを受信して、受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(Span<Byte>)

バインドされた Socket からデータを受信し、受信バッファーに格納します。Receives data from a bound Socket into a receive buffer.

Receive(Span<Byte>, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

ReceiveAsync(SocketAsyncEventArgs)

接続されている Socket オブジェクトからデータを受信する非同期要求を開始します。Begins an asynchronous request to receive data from a connected Socket object.

ReceiveFrom(Byte[], EndPoint)

データグラムを受信してデータバッファーに格納します。さらに、エンドポイントを格納します。Receives a datagram into the data buffer and stores the endpoint.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

指定した SocketFlags を使用して、指定したバイト数のデータを受信して、データ バッファー内の指定した位置に格納します。またエンドポイントを格納します。Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

指定した SocketFlags を使用し、指定したバイト数のデータを受信してデータ バッファーに格納します。さらに、エンドポイントを格納します。Receives the specified number of bytes into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

指定した SocketFlags を使用し、データグラムを受信してデータバッファーに格納します。さらに、エンドポイントを格納します。Receives a datagram into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

指定したネットワーク デバイスから、データの非同期の受信を開始します。Begins to asynchronously receive data from a specified network device.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

指定した SocketFlags を使用して、指定したバイト数のデータをデータ バッファー内の指定した位置で受信して、エンドポイントおよびパケット情報を格納します。Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

指定された SocketFlags を使用し、指定されたバイト数のデータの非同期受信を開始して、データ バッファー内の指定された場所に格納します。さらに、エンドポイントとパケットの情報を格納します。Begins to asynchronously receive the specified number of bytes of data into the specified location in the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

Select(IList, IList, IList, Int32)

1 つまたは複数のソケットのステータスを判断します。Determines the status of one or more sockets.

Send(Byte[])

接続された Socket にデータを送信します。Sends data to a connected Socket.

Send(Byte[], Int32, Int32, SocketFlags)

指定したオフセットから開始し、指定した SocketFlags を使用して、指定したバイト数のデータを接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

指定したオフセットから開始し、指定した SocketFlags を使用して、指定したバイト数のデータを接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags

Send(Byte[], Int32, SocketFlags)

指定した SocketFlags を使用し、指定したバイト数のデータを、接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, using the specified SocketFlags.

Send(Byte[], SocketFlags)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>)

リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags)

指定した SocketFlags を使用して、リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

指定した SocketFlags を使用して、リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(ReadOnlySpan<Byte>)

接続された Socket にデータを送信します。Sends data to a connected Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

SendAsync(SocketAsyncEventArgs)

接続されている Socket オブジェクトに、データを非同期に送信します。Sends data asynchronously to a connected Socket object.

SendFile(String)

UseDefaultWorkerThread 送信フラグを使用して、接続されている Socket オブジェクトにファイル fileName を送信します。Sends the file fileName to a connected Socket object with the UseDefaultWorkerThread transmit flag.

SendFile(String, Byte[], Byte[], TransmitFileOptions)

指定した TransmitFileOptions 値を使用して、接続された Socket オブジェクトにファイル fileName およびデータのバッファーを送信します。Sends the file fileName and buffers of data to a connected Socket object using the specified TransmitFileOptions value.

SendPacketsAsync(SocketAsyncEventArgs)

接続されている Socket オブジェクトに、ファイルのコレクションまたはメモリ内のデータ バッファーを非同期に送信します。Sends a collection of files or in memory data buffers asynchronously to a connected Socket object.

SendTo(Byte[], EndPoint)

指定したエンドポイントにデータを送信します。Sends data to the specified endpoint.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

指定した SocketFlags を使用し、指定したバイト数のデータを、指定したエンドポイントに送信します。送信はバッファー内の指定した位置から開始されます。Sends the specified number of bytes of data to the specified endpoint, starting at the specified location in the buffer, and using the specified SocketFlags.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

指定した SocketFlags を使用し、指定したバイト数のデータを、指定したエンドポイントに送信します。Sends the specified number of bytes of data to the specified endpoint using the specified SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

指定した SocketFlags を使用して、特定のエンドポイントにデータを送信します。Sends data to a specific endpoint using the specified SocketFlags.

SendToAsync(SocketAsyncEventArgs)

特定のリモート ホストにデータを非同期的に送信します。Sends data asynchronously to a specific remote host.

SetIPProtectionLevel(IPProtectionLevel)

ソケットの IP 保護レベルを設定します。Set the IP protection level on a socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

指定した Socket オプションを、指定した Boolean 値に設定します。Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプションを、指定した値に設定します。この値はバイト配列で表されます。Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションを、指定した整数値に設定します。Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

指定した Socket オプションを、指定した値に設定します。この値はオブジェクトで表されます。Sets the specified Socket option to the specified value, represented as an object.

Shutdown(SocketShutdown)

Socket での送受信を無効にします。Disables sends and receives on a Socket.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

明示的なインターフェイスの実装

IDisposable.Dispose()

Socket によって使用されているすべてのリソースを解放します。Releases all resources used by the Socket.

拡張メソッド

AcceptAsync(Socket)

ソケットでの受信接続の試行を受け入れる非同期操作を実行します。Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

AcceptAsync(Socket, Socket)

ソケットでの受信接続の試行を受け入れる非同期操作を実行します。Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

ConnectAsync(Socket, EndPoint)

リモート ホストへの接続を確立します。Establishes a connection to a remote host.

ConnectAsync(Socket, IPAddress, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスとポート番号で指定されます。The host is specified by an IP address and a port number.

ConnectAsync(Socket, IPAddress[], Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストは、IP アドレスの配列とポート番号で指定されます。The host is specified by an array of IP addresses and a port number.

ConnectAsync(Socket, String, Int32)

リモート ホストへの接続を確立します。Establishes a connection to a remote host. ホストはホスト名とポート番号で指定されます。The host is specified by a host name and a port number.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

接続されたソケットからデータを受信します。Receives data from a connected socket.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

接続されたソケットからデータを受信します。Receives data from a connected socket.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

接続されたソケットからデータを受信します。Receives data from a connected socket.

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

指定したネットワーク デバイスからデータを受信します。Receives data from a specified network device.

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

指定した SocketFlags を使用して、指定したバイト数のデータをデータ バッファー内の指定した位置で受信して、エンドポイントおよびパケット情報を格納します。Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

接続されたソケットにデータを送信します。Sends data to a connected socket.

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

接続されたソケットにデータを送信します。Sends data to a connected socket.

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

接続されたソケットにデータを送信します。Sends data to a connected socket.

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

特定のリモート ホストにデータを非同期的に送信します。Sends data asynchronously to a specific remote host.

セキュリティ

SocketPermission
発信接続を確立するか、受信要求を受け入れる。To establish an outgoing connection or accept an incoming request.

適用対象

スレッド セーフ

このクラスのインスタンスは、スレッドセーフです。Instances of this class are thread safe.

こちらもご覧ください