Bagikan melalui


Socket.Connect Metode

Definisi

Membuat koneksi ke host jarak jauh.

Overload

Connect(EndPoint)

Membuat koneksi ke host jarak jauh.

Connect(IPAddress, Int32)

Membuat koneksi ke host jarak jauh. Host ditentukan oleh alamat IP dan nomor port.

Connect(IPAddress[], Int32)

Membuat koneksi ke host jarak jauh. Host ditentukan oleh array alamat IP dan nomor port.

Connect(String, Int32)

Membuat koneksi ke host jarak jauh. Host ditentukan oleh nama host dan nomor port.

Connect(EndPoint)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Membuat koneksi ke host jarak jauh.

public:
 void Connect(System::Net::EndPoint ^ remoteEP);
public void Connect (System.Net.EndPoint remoteEP);
member this.Connect : System.Net.EndPoint -> unit
Public Sub Connect (remoteEP As EndPoint)

Parameter

remoteEP
EndPoint

Yang EndPoint mewakili perangkat jarak jauh.

Pengecualian

remoteEPadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Penelepon yang lebih tinggi dalam tumpukan panggilan tidak memiliki izin untuk operasi yang diminta.

Socket telah ditempatkan dalam status mendengarkan dengan memanggil Listen(Int32).

Contoh

Contoh kode berikut tersambung ke titik akhir jarak jauh lalu memverifikasi koneksi.

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 );
// .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);
    ' .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

Keterangan

Jika Anda menggunakan protokol berorientasi koneksi seperti TCP, Connect metode secara sinkron membuat koneksi jaringan antara LocalEndPoint dan titik akhir jarak jauh yang ditentukan. Jika Anda menggunakan protokol tanpa koneksi, Connect buat host jarak jauh default. Setelah memanggil Connect, Anda dapat mengirim data ke perangkat jarak jauh dengan Send metode , atau menerima data dari perangkat jarak jauh dengan Receive metode .

Jika Anda menggunakan protokol tanpa koneksi seperti UDP, Anda tidak perlu menelepon Connect sebelum mengirim dan menerima data. Anda dapat menggunakan SendTo dan ReceiveFrom untuk berkomunikasi secara sinkron dengan host jarak jauh. Jika Anda memanggil Connect, datagram apa pun yang berasal dari alamat selain default yang ditentukan akan dibuang. Jika Anda ingin mengatur host jarak jauh default Anda ke alamat siaran, Anda harus terlebih dahulu memanggil SetSocketOption metode dan mengatur opsi soket ke SocketOptionName.Broadcast, atau Connect akan melemparkan SocketException. Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.

Metode Connect akan memblokir, kecuali Anda secara khusus mengatur Blocking properti sebelum false memanggil Connect. Jika Anda menggunakan protokol berorientasi koneksi seperti TCP dan Anda menonaktifkan pemblokiran, Connect akan melempar SocketException karena perlu waktu untuk membuat koneksi. Protokol tanpa koneksi tidak akan memberikan pengecualian karena hanya membuat host jarak jauh default. Anda dapat menggunakan SocketException.ErrorCode untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut. Jika kesalahan mengembalikan WSAEWOULDBLOCK, koneksi host jarak jauh telah dimulai oleh koneksi berorientasi Socket, tetapi belum berhasil diselesaikan. Poll Gunakan metode untuk menentukan kapan Socket selesai menyambungkan.

Catatan

Jika Anda menggunakan protokol berorientasi koneksi dan tidak memanggil Bind sebelum memanggil Connect, penyedia layanan yang mendasar akan menetapkan alamat jaringan lokal dan nomor port. Jika Anda menggunakan protokol tanpa koneksi, penyedia layanan tidak akan menetapkan alamat jaringan lokal dan nomor port hingga Anda menyelesaikan operasi kirim atau terima. Jika Anda ingin mengubah host jarak jauh default, panggil Connect lagi dengan titik akhir yang diinginkan.

Catatan

Jika soket sebelumnya terputus, maka Anda tidak dapat menggunakan metode ini untuk memulihkan koneksi. Gunakan salah satu metode asinkron BeginConnect untuk menyambungkan kembali. Ini adalah batasan dari penyedia yang mendasar.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk

Connect(IPAddress, Int32)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Membuat koneksi ke host jarak jauh. Host ditentukan oleh alamat IP dan nomor port.

public:
 void Connect(System::Net::IPAddress ^ address, int port);
public void Connect (System.Net.IPAddress address, int port);
member this.Connect : System.Net.IPAddress * int -> unit
Public Sub Connect (address As IPAddress, port As Integer)

Parameter

address
IPAddress

Alamat IP host jarak jauh.

port
Int32

Nomor port host jarak jauh.

Pengecualian

addressadalah null.

Nomor port tidak valid.

Terjadi kesalahan saat mencoba mengakses soket.

Metode ini berlaku untuk soket dalam InterNetwork atau InterNetworkV6 keluarga.

Panjangnya address adalah nol.

Socket telah ditempatkan dalam status mendengarkan dengan memanggil Listen(Int32).

Contoh

Contoh kode berikut tersambung ke titik akhir jarak jauh lalu memverifikasi koneksi.

// Synchronous connect using IPAddress to resolve the 
// host name.
static void Connect1( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( IPs[ 0 ], port );
   Console::WriteLine( "Connection established" );
}
// 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");
}

Keterangan

Jika Anda menggunakan protokol berorientasi koneksi seperti TCP, Connect metode secara sinkron membuat koneksi jaringan antara LocalEndPoint dan titik akhir jarak jauh yang ditentukan. Jika Anda menggunakan protokol tanpa koneksi, Connect buat host jarak jauh default. Setelah memanggil Connect , Anda dapat mengirim data ke perangkat jarak jauh dengan Send metode , atau menerima data dari perangkat jarak jauh dengan Receive metode .

Jika Anda menggunakan protokol tanpa koneksi seperti UDP, Anda tidak perlu menelepon Connect sebelum mengirim dan menerima data. Anda dapat menggunakan SendTo dan ReceiveFrom untuk berkomunikasi secara sinkron dengan host jarak jauh. Jika Anda memanggil Connect datagram apa pun yang berasal dari alamat selain default yang ditentukan akan dibuang. Jika Anda ingin mengatur host jarak jauh default Anda ke alamat siaran, Anda harus terlebih dahulu memanggil SetSocketOption metode dan mengatur opsi soket ke SocketOptionName.Broadcast, atau Connect akan melemparkan SocketException. Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.

Connect metode akan memblokir, kecuali Anda secara khusus mengatur Blocking properti sebelum false memanggil Connect. Jika Anda menggunakan protokol berorientasi koneksi seperti TCP dan Anda menonaktifkan pemblokiran, Connect akan melempar SocketException karena perlu waktu untuk membuat koneksi. Protokol tanpa koneksi tidak akan memberikan pengecualian karena hanya membuat host jarak jauh default. Anda dapat menggunakan SocketException.ErrorCode untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut. Jika kesalahan mengembalikan WSAEWOULDBLOCK, koneksi host jarak jauh telah dimulai oleh koneksi berorientasi Socket, tetapi belum berhasil diselesaikan. Poll Gunakan metode untuk menentukan kapan Socket selesai menyambungkan.

Catatan

Jika Anda menggunakan protokol berorientasi koneksi dan tidak memanggil Bind sebelum memanggil Connect, penyedia layanan yang mendasar akan menetapkan alamat jaringan lokal dan nomor port. Jika Anda menggunakan protokol tanpa koneksi, penyedia layanan tidak akan menetapkan alamat jaringan lokal dan nomor port hingga Anda menyelesaikan operasi kirim atau terima. Jika Anda ingin mengubah host jarak jauh default, panggil Connect lagi dengan titik akhir yang diinginkan.

Catatan

Jika soket sebelumnya terputus, maka Anda tidak dapat menggunakan metode ini untuk memulihkan koneksi. Gunakan salah satu metode asinkron BeginConnect untuk menyambungkan kembali. Ini adalah batasan dari penyedia yang mendasar.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Berlaku untuk

Connect(IPAddress[], Int32)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Membuat koneksi ke host jarak jauh. Host ditentukan oleh array alamat IP dan nomor port.

public:
 void Connect(cli::array <System::Net::IPAddress ^> ^ addresses, int port);
public void Connect (System.Net.IPAddress[] addresses, int port);
member this.Connect : System.Net.IPAddress[] * int -> unit
Public Sub Connect (addresses As IPAddress(), port As Integer)

Parameter

addresses
IPAddress[]

Alamat IP host jarak jauh.

port
Int32

Nomor port host jarak jauh.

Pengecualian

addressesadalah null.

Nomor port tidak valid.

Terjadi kesalahan saat mencoba mengakses soket.

Soket tidak ada di InterNetwork dalam atau InterNetworkV6 keluarga.

Panjangnya address adalah nol.

Socket telah ditempatkan dalam status mendengarkan dengan memanggil Listen(Int32).

Contoh

Contoh kode berikut tersambung ke titik akhir jarak jauh lalu memverifikasi koneksi.

// Synchronous connect using Dns.ResolveToAddresses to 
// resolve the host name.
static void Connect2( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( IPs, port );
   Console::WriteLine( "Connection established" );
}
// 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");
}

Keterangan

Metode ini biasanya digunakan segera setelah panggilan ke GetHostAddresses, yang dapat mengembalikan beberapa alamat IP untuk satu host. Jika Anda menggunakan protokol berorientasi koneksi seperti TCP, Connect metode secara sinkron membuat koneksi jaringan antara LocalEndPoint dan titik akhir jarak jauh yang ditentukan. Jika Anda menggunakan protokol tanpa koneksi, Connect buat host jarak jauh default. Setelah memanggil Connect , Anda dapat mengirim data ke perangkat jarak jauh dengan Send metode , atau menerima data dari perangkat jarak jauh dengan Receive metode .

Jika Anda menggunakan protokol tanpa koneksi seperti UDP, Anda tidak perlu memanggil Connect sebelum mengirim dan menerima data. Anda dapat menggunakan SendTo dan ReceiveFrom untuk berkomunikasi secara sinkron dengan host jarak jauh. Jika Anda memanggil Connect datagram apa pun yang berasal dari alamat selain default yang ditentukan akan dibuang. Jika Anda ingin mengatur host jarak jauh default Anda ke alamat siaran, Anda harus terlebih dahulu memanggil SetSocketOption metode dan mengatur opsi soket ke SocketOptionName.Broadcast, atau Connect akan melempar SocketException. Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.

Connect metode akan memblokir, kecuali Anda secara khusus mengatur Blocking properti sebelum false memanggil Connect. Jika Anda menggunakan protokol berorientasi koneksi seperti TCP dan Anda menonaktifkan pemblokiran, Connect akan melempar SocketException karena perlu waktu untuk membuat koneksi. Protokol tanpa koneksi tidak akan melemparkan pengecualian karena mereka hanya membuat host jarak jauh default. Anda dapat menggunakan SocketException.ErrorCode untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut. Jika kesalahan mengembalikan WSAEWOULDBLOCK, koneksi host jarak jauh telah dimulai oleh koneksi berorientasi Socket, tetapi belum berhasil diselesaikan. Poll Gunakan metode untuk menentukan kapan Socket selesai menyambungkan.

Catatan

Jika Anda menggunakan protokol berorientasi koneksi dan tidak memanggil Bind sebelum memanggil Connect, penyedia layanan yang mendasar akan menetapkan alamat jaringan lokal dan nomor port. Jika Anda menggunakan protokol tanpa koneksi, penyedia layanan tidak akan menetapkan alamat jaringan lokal dan nomor port hingga Anda menyelesaikan operasi kirim atau terima. Jika Anda ingin mengubah host jarak jauh default, hubungi Connect lagi dengan titik akhir yang diinginkan.

Catatan

Jika soket telah terputus sebelumnya, maka Anda tidak dapat menggunakan metode ini untuk memulihkan koneksi. Gunakan salah satu metode asinkron BeginConnect untuk menyambungkan kembali. Ini adalah batasan dari penyedia yang mendasar.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Berlaku untuk

Connect(String, Int32)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Membuat koneksi ke host jarak jauh. Host ditentukan oleh nama host dan nomor port.

public:
 void Connect(System::String ^ host, int port);
public void Connect (string host, int port);
member this.Connect : string * int -> unit
Public Sub Connect (host As String, port As Integer)

Parameter

host
String

Nama host jarak jauh.

port
Int32

Nomor port host jarak jauh.

Pengecualian

hostadalah null.

Nomor port tidak valid.

Terjadi kesalahan saat mencoba mengakses soket.

Soket tidak ada dalam InterNetwork keluarga atau InterNetworkV6 .

Socket telah ditempatkan dalam status mendengarkan dengan memanggil Listen(Int32).

Contoh

Contoh kode berikut tersambung ke titik akhir jarak jauh lalu memverifikasi koneksi.

// Synchronous connect using host name (resolved by the 
// Connect call.)
static void Connect3( String^ host, int port )
{
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->Connect( host, port );
   Console::WriteLine( "Connection established" );
}
// 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");
}

Keterangan

Jika Anda menggunakan protokol berorientasi koneksi seperti TCP, Connect metode secara sinkron membuat koneksi jaringan antara LocalEndPoint dan host jarak jauh yang ditentukan. Jika Anda menggunakan protokol tanpa koneksi, Connect buat host jarak jauh default. Setelah memanggil Connect , Anda dapat mengirim data ke perangkat jarak jauh dengan Send metode , atau menerima data dari perangkat jarak jauh dengan Receive metode .

Jika Anda menggunakan protokol tanpa koneksi seperti UDP, Anda tidak perlu memanggil Connect sebelum mengirim dan menerima data. Anda dapat menggunakan SendTo dan ReceiveFrom untuk berkomunikasi secara sinkron dengan host jarak jauh. Jika Anda memanggil Connect datagram apa pun yang berasal dari alamat selain default yang ditentukan akan dibuang. Jika Anda ingin mengatur host jarak jauh default Anda ke alamat siaran, Anda harus terlebih dahulu memanggil SetSocketOption metode dan mengatur opsi soket ke SocketOptionName.Broadcast, atau Connect akan melempar SocketException. Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.

Metode Connect akan memblokir, kecuali Anda secara khusus mengatur Blocking properti sebelum false memanggil Connect. Jika Anda menggunakan protokol berorientasi koneksi seperti TCP dan Anda menonaktifkan pemblokiran, Connect akan melempar SocketException karena perlu waktu untuk membuat koneksi. Protokol tanpa koneksi tidak akan melemparkan pengecualian karena mereka hanya membuat host jarak jauh default. Anda dapat menggunakan SocketException.ErrorCode untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut. Jika kesalahan mengembalikan WSAEWOULDBLOCK, koneksi host jarak jauh telah dimulai oleh koneksi berorientasi Socket, tetapi belum berhasil diselesaikan. Poll Gunakan metode untuk menentukan kapan Socket selesai menyambungkan.

Jika IPv6 diaktifkan dan Connect(String, Int32) metode dipanggil untuk terhubung ke host yang diselesaikan ke alamat IPv6 dan IPv4, koneksi ke alamat IPv6 akan dicoba terlebih dahulu sebelum alamat IPv4. Ini mungkin memiliki efek menunda waktu untuk membuat koneksi jika host tidak mendengarkan alamat IPv6.

Catatan

Jika Anda menggunakan protokol berorientasi koneksi dan tidak memanggil Bind sebelum memanggil Connect, penyedia layanan yang mendasar akan menetapkan alamat jaringan lokal dan nomor port. Jika Anda menggunakan protokol tanpa koneksi, penyedia layanan tidak akan menetapkan alamat jaringan lokal dan nomor port hingga Anda menyelesaikan operasi kirim atau terima. Jika Anda ingin mengubah host jarak jauh default, hubungi Connect lagi dengan titik akhir yang diinginkan.

Catatan

Jika soket telah terputus sebelumnya, maka Anda tidak dapat menggunakan metode ini untuk memulihkan koneksi. Gunakan salah satu metode asinkron BeginConnect untuk menyambungkan kembali. Ini adalah batasan dari penyedia yang mendasar.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Berlaku untuk