socket_connectとは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > socket_connectの意味・解説 

socket_connect

(PHP 4 >= 4.0.7, PHP 5)
socket_connect — ソケット上の接続を初期化する

説明

bool socket_connect ( resource socket, string address [, int port] )
ソケット記述子 socket を用いて接続を初期化 します。この記述子は、socket_create() で作成した 有効なソケット記述子である必要があります。
パラメータaddress には、 ソケットの種類が AF_INET の場合はドット区切り表記の IP アドレス(例: 127.0.0.1)、 AF_UNIX の場合は Unix ドメインソケットのパス名を 指定します。
パラメータ port は AF_INET ソケットに接続する場合にのみ使用され、 接続するリモートホストのポートを指定します。
成功した場合に TRUE を、失敗した場合に FALSE を返します。 エラーコードは、 socket_last_error() により取得できます。 このコードを socket_strerror() に渡すことにより、 エラー内容を表すテキストを得ることができます。
socket_bind()、 socket_listen()、 socket_create()、 socket_last_error() および socket_strerror() も参照ください。

Socket.Connect メソッド (IPAddress[], Int32)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

リモート ホストへの接続を確立します。ホストは、IP アドレスとポート番号の配列で指定されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentNullException

addresses が null 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

ポート番号が無効です。

SocketException

ソケットへのアクセスを試みているときにエラーが発生しました。詳細については「解説」を参照してください。

ObjectDisposedException

Socket は閉じられています。

NotSupportedException

このメソッドは、InterNetwork または InterNetworkV6 ファミリのソケットで有効です。

ArgumentException

address の長さが 0 です。

InvalidOperationException

Socket が Listen を実行中です。

解説解説

通常、このメソッドは GetHostAddresses を呼び出した直後に使用され、単一のホストに対する複数の IP アドレスを返すことができます。TCP などのコネクション指向のプロトコルを使用している場合、Connect メソッドは LocalEndPoint と指定したリモート エンドポイント間のネットワーク接続を同期的に確立します。コネクションレスのプロトコルを使用している場合、Connect は既定のリモート ホストを確立します。Connect を呼び出したら、Send メソッドを使用してリモート デバイスにデータを送信できます。また、Receive メソッドを使用してリモート デバイスからデータを受信することもできます。

UDP などのコネクションレスのプロトコルを使用している場合は、データを送受信する前に Connect を呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できます。Connect を呼び出した場合、指定した既定のアドレス以外から送信されたデータグラムはすべて破棄されます。既定のリモート ホストをブロードキャスト アドレスに設定する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。このように設定しないと、Connect は SocketException をスローします。SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルからエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

Connect を呼び出す前に Blocking プロパティを false に設定しないと、Connect メソッドはブロックします。TCP などのコネクション指向のプロトコルを使用しており、ブロックを無効にしている場合、Connect には接続を確立するための時間が必要です。このため、SocketException をスローします。一方、コネクションレスのプロトコルは、既定のリモート ホストを確立するだけであるため、例外をスローしません。SocketException.ErrorCode を使用すると、特定のエラー コードを取得できます。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。エラーが WSAEWOULDBLOCK を返した場合、リモート ホスト接続はコネクション指向の Socket によって開始されていますが、正常に完了していません。Poll メソッドを使用して、Socket がいつ接続を完了するかを確認します。

メモメモ

コネクション指向のプロトコルを使用しており、Connect の前に Bind を呼び出さなかった場合は、基になるサービス プロバイダがローカル ネットワーク アドレスとポート番号を割り当てます。コネクションレスのプロトコルを使用している場合は、送受信操作を完了するまで、サービス プロバイダはローカル ネットワーク アドレスとポート番号を割り当てません。既定のリモート ホストを変更する必要がある場合は、必要なエンドポイントで Connect を再度呼び出します。

メモメモ

ソケットの接続が既に解除されていた場合、このメソッドを使って接続を復元することはできません。いずれかの非同期 BeginConnect メソッドを使用して再接続してください。これは、基になるプロバイダの制限です。

使用例使用例

リモート エンドポイントに接続し、接続を検証するコード例を次に示します。

// Synchronous connect using Dns.GetHostAddresses to 
// resolve the host name.
public static void Connect2(string
 host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);
    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.Connect(IPs, port);
    Console.WriteLine("Connection established");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.Connect メソッド (IPAddress, Int32)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

リモート ホストへの接続を確立します。ホストは、IP アドレスとポート番号で指定されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentNullException

address が null 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

ポート番号が無効です。

SocketException

ソケットへのアクセスを試みているときにエラーが発生しました。詳細については「解説」を参照してください。

ObjectDisposedException

Socket は閉じられています。

NotSupportedException

このメソッドは、InterNetwork または InterNetworkV6 ファミリのソケットで有効です。

ArgumentException

address の長さが 0 です。

InvalidOperationException

Socket が Listen を実行中です。

解説解説

TCP などのコネクション指向のプロトコルを使用している場合、Connect メソッドは LocalEndPoint と指定したリモート エンドポイント間のネットワーク接続を同期的に確立します。コネクションレスのプロトコルを使用している場合、Connect は既定のリモート ホストを確立します。Connect を呼び出したら、Send メソッドを使用してリモート デバイスにデータを送信できます。また、Receive メソッドを使用してリモート デバイスからデータを受信することもできます。

UDP などのコネクションレスのプロトコルを使用している場合は、データを送受信する前に Connect を呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できます。Connect を呼び出した場合、指定した既定のアドレス以外から送信されたデータグラムはすべて破棄されます。既定のリモート ホストをブロードキャスト アドレスに設定する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。このように設定しないと、Connect は SocketException をスローします。SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルからエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

Connect を呼び出す前に Blocking プロパティを false に設定しないと、Connect メソッドはブロックします。TCP などのコネクション指向のプロトコルを使用しており、ブロックを無効にしている場合、Connect には接続を確立するための時間が必要です。このため、SocketException をスローします。一方、コネクションレスのプロトコルは、既定のリモート ホストを確立するだけであるため、例外をスローしません。SocketException.ErrorCode を使用すると、特定のエラー コードを取得できます。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。エラーが WSAEWOULDBLOCK を返した場合、リモート ホスト接続はコネクション指向の Socket によって開始されていますが、正常に完了していません。Poll メソッドを使用して、Socket がいつ接続を完了するかを確認します。

メモメモ

コネクション指向のプロトコルを使用しており、Connect の前に Bind を呼び出さなかった場合は、基になるサービス プロバイダがローカル ネットワーク アドレスとポート番号を割り当てます。コネクションレスのプロトコルを使用している場合は、送受信操作を完了するまで、サービス プロバイダはローカル ネットワーク アドレスとポート番号を割り当てません。既定のリモート ホストを変更する必要がある場合は、必要なエンドポイントで Connect を再度呼び出します。

メモメモ

ソケットの接続が既に解除されていた場合、このメソッドを使って接続を復元することはできません。いずれかの非同期 BeginConnect メソッドを使用して再接続してください。これは、基になるプロバイダの制限です。

使用例使用例

リモート エンドポイントに接続し、接続を検証するコード例を次に示します。

// Synchronous connect using IPAddress to resolve the 
// host name.
public static void Connect1(string
 host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);
 
    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.Connect(IPs[0], port);
    Console.WriteLine("Connection established");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.Connect メソッド (String, Int32)

メモ : このメソッドは、.NET Framework version 2.0 で新しく追加されたものです。

リモート ホストへの接続を確立します。ホストは、ホスト名とポート番号で指定されます。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentNullException

host が null 参照 (Visual Basic では Nothing) です。

ArgumentOutOfRangeException

ポート番号が無効です。

SocketException

ソケットへのアクセスを試みているときにエラーが発生しました。詳細については「解説」を参照してください。

ObjectDisposedException

Socket は閉じられています。

NotSupportedException

このメソッドは、InterNetwork または InterNetworkV6 ファミリのソケットで有効です。

InvalidOperationException

Socket が Listen を実行中です。

解説解説

TCP などのコネクション指向のプロトコルを使用している場合、Connect メソッドは LocalEndPoint と指定したリモート ホスト間のネットワーク接続を同期的に確立します。コネクションレスのプロトコルを使用している場合、Connect は既定のリモート ホストを確立します。Connect を呼び出したら、Send メソッドを使用してリモート デバイスにデータを送信できます。また、Receive メソッドを使用してリモート デバイスからデータを受信することもできます。

UDP などのコネクションレスのプロトコルを使用している場合は、データを送受信する前に Connect を呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できます。Connect を呼び出した場合、指定した既定のアドレス以外から送信されたデータグラムはすべて破棄されます。既定のリモート ホストをブロードキャスト アドレスに設定する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。このように設定しないと、Connect は SocketException をスローします。SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルからエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

Connect を呼び出す前に Blocking プロパティを false に設定しないと、Connect メソッドはブロックします。TCP などのコネクション指向のプロトコルを使用しており、ブロックを無効にしている場合、Connect には接続を確立するための時間が必要です。このため、SocketException をスローします。一方、コネクションレスのプロトコルは、既定のリモート ホストを確立するだけであるため、例外をスローしません。SocketException.ErrorCode を使用すると、特定のエラー コードを取得できます。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。エラーが WSAEWOULDBLOCK を返した場合、リモート ホスト接続はコネクション指向の Socket によって開始されていますが、正常に完了していません。Poll メソッドを使用して、Socket がいつ接続を完了するかを確認します。

メモメモ

コネクション指向のプロトコルを使用しており、Connect の前に Bind を呼び出さなかった場合は、基になるサービス プロバイダがローカル ネットワーク アドレスとポート番号を割り当てます。コネクションレスのプロトコルを使用している場合は、送受信操作を完了するまで、サービス プロバイダはローカル ネットワーク アドレスとポート番号を割り当てません。既定のリモート ホストを変更する必要がある場合は、必要なエンドポイントで Connect を再度呼び出します。

メモメモ

ソケットの接続が既に解除されていた場合、このメソッドを使って接続を復元することはできません。いずれかの非同期 BeginConnect メソッドを使用して再接続してください。これは、基になるプロバイダの制限です。

使用例使用例

リモート エンドポイントに接続し、接続を検証するコード例を次に示します。

// Synchronous connect using host name (resolved by the 
// Connect call.)
public static void Connect3(string
 host, int port)
{
    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    Console.WriteLine("Establishing Connection to {0}", 
        host);
    s.Connect(host, port);
    Console.WriteLine("Connection established");
}        
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.Connect メソッド


Socket.Connect メソッド (EndPoint)

リモート ホストへの接続を確立します。

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Dim instance As Socket
Dim remoteEP As EndPoint

instance.Connect(remoteEP)
public:
void Connect (
    EndPoint^ remoteEP
)

パラメータ

remoteEP

リモート デバイスを表す EndPoint。

例外例外
例外の種類条件

ArgumentNullException

remoteEP が null 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセスを試みているときにエラーが発生しました。詳細については「解説」を参照してください。

ObjectDisposedException

Socket は閉じられています。

SecurityException

コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。

InvalidOperationException

Socket が Listen を実行中です。

解説解説

TCP などのコネクション指向のプロトコルを使用している場合、Connect メソッドは LocalEndPoint と指定したリモート エンドポイント間のネットワーク接続を同期的に確立します。コネクションレスのプロトコルを使用している場合、Connect は既定のリモート ホストを確立します。Connect を呼び出したら、Send メソッドを使用してリモート デバイスにデータを送信できます。また、Receive メソッドを使用してリモート デバイスからデータを受信することもできます。

UDP などのコネクションレスのプロトコルを使用している場合は、データを送受信する前に Connect を呼び出す必要はありません。リモート ホストとの同期通信には、SendTo および ReceiveFrom を使用できます。Connect を呼び出した場合、指定した既定のアドレス以外から送信されたデータグラムはすべて破棄されます。既定のリモート ホストをブロードキャスト アドレスに設定する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。このように設定しないと、Connect は SocketException をスローします。SocketException が発生した場合は、SocketException.ErrorCode プロパティを使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルからエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。

Connect を呼び出す前に Blocking プロパティを false に設定しないと、Connect メソッドはブロックします。TCP などのコネクション指向のプロトコルを使用しており、ブロックを無効にしている場合、Connect には接続を確立するための時間が必要です。このため、SocketException をスローします。一方、コネクションレスのプロトコルは、既定のリモート ホストを確立するだけであるため、例外をスローしません。SocketException.ErrorCode を使用すると、特定のエラー コードを取得できます。このコードを取得したら、Windows Socket Version 2 API エラー コードのドキュメントでエラーの詳細情報を確認してください。これは MSDN ライブラリから入手できます。エラーが WSAEWOULDBLOCK を返した場合、リモート ホスト接続はコネクション指向の Socket によって開始されていますが、正常に完了していません。Poll メソッドを使用して、Socket がいつ接続を完了するかを確認します。

メモメモ

コネクション指向のプロトコルを使用しており、Connect の前に Bind を呼び出さなかった場合は、基になるサービス プロバイダがローカル ネットワーク アドレスとポート番号を割り当てます。コネクションレスのプロトコルを使用している場合は、送受信操作を完了するまで、サービス プロバイダはローカル ネットワーク アドレスとポート番号を割り当てません。既定のリモート ホストを変更する必要がある場合は、必要なエンドポイントで Connect を再度呼び出します。

メモメモ

ソケットの接続が既に解除されていた場合、このメソッドを使って接続を復元することはできません。いずれかの非同期 BeginConnect メソッドを使用して再接続してください。これは、基になるプロバイダの制限です。

使用例使用例

リモート エンドポイントに接続し、接続を検証するコード例を次に示します。

    ' .Connect throws an exception if unsuccessful
    client.Connect(anEndPoint)
    
    ' This is how you can determine whether a socket is still connected.
    Dim blockingState As Boolean
 = client.Blocking
    Try
        Dim tmp(0) As Byte
        
        client.Blocking = False
        client.Send(tmp, 0, 0)
        Console.WriteLine("Connected!")
    Catch e As SocketException
        ' 10035 == WSAEWOULDBLOCK
        If e.NativeErrorCode.Equals(10035) Then
            Console.WriteLine("Still Connected, but the Send would
 block")
        Else
            Console.WriteLine("Disconnected: error code {0}!",
 e.NativeErrorCode)
        End If
    Finally
        client.Blocking = blockingState
    End Try
    
    Console.WriteLine("Connected: {0}", client.Connected)

End Sub 'ConnectAndCheck
// .Connect throws an exception if unsuccessful
client.Connect(anEndPoint);

// This is how you can determine whether a socket is still connected.
bool blockingState = client.Blocking;
try
{
    byte [] tmp = new byte[1];

    client.Blocking = false;
    client.Send(tmp, 0, 0);
    Console.WriteLine("Connected!");
}
catch (SocketException e) 
{
    // 10035 == WSAEWOULDBLOCK
    if (e.NativeErrorCode.Equals(10035))
        Console.WriteLine("Still Connected, but the Send would block");
    else
    {
        Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode);
    }
}
finally
{
    client.Blocking = blockingState;
}

 Console.WriteLine("Connected: {0}", client.Connected);
client->Connect( anEndPoint );
if (  !client->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
   
// This is how you can determine whether a socket is still connected.
bool blockingState = client->Blocking;
try
{
   array<Byte>^tmp = gcnew array<Byte>(1);
   client->Blocking = false;
   client->Send( tmp, 0, static_cast<SocketFlags>(0) );
   Console::WriteLine( L"Connected!" );
}
catch ( SocketException^ e ) 
{
   // 10035 == WSAEWOULDBLOCK
   if ( e->NativeErrorCode.Equals( 10035 ) )
   {
      Console::WriteLine( "Connected from an exception!" );
   }
   else
   {
      Console::WriteLine( "Disconnected: {0}!", e->NativeErrorCode );
   }
}
finally
{
   client->Blocking = blockingState;
}

Console::WriteLine( "Connected: {0}", client->Connected );
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
Send
SendTo
Receive
ReceiveFrom
LocalEndPoint
SetSocketOption
Blocking
Poll


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「socket_connect」の関連用語

socket_connectのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



socket_connectのページの著作権

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2026 by the PHP Documentation Group.
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS