Socket.Connect Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
Pengecualian
remoteEP
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
- Send(Byte[], Int32, SocketFlags)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Receive(Byte[], Int32, SocketFlags)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- LocalEndPoint
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Blocking
- Poll(Int32, SelectMode)
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
address
adalah null
.
Nomor port tidak valid.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
addresses
adalah null
.
Nomor port tidak valid.
Terjadi kesalahan saat mencoba mengakses soket.
Sudah Socket ditutup.
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
host
adalah null
.
Nomor port tidak valid.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
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.