Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Stellt Clientverbindungen für TCP-Netzwerkdienste bereit.
Namespace: System.Net.Sockets
Assembly: System (in system.dll)
Syntax
'Declaration
Public Class TcpClient
Implements IDisposable
'Usage
Dim instance As TcpClient
public class TcpClient : IDisposable
public ref class TcpClient : IDisposable
public class TcpClient implements IDisposable
public class TcpClient implements IDisposable
Hinweise
Die TcpClient-Klasse stellt einfache Methoden für die Verbindung, das Senden und Empfangen von Streamdaten in einem Netzwerk im synchronen Blockiermodus bereit.
Damit der TcpClient eine Verbindung herstellen und Daten austauschen kann, muss ein TcpListener oder Socket, der mit dem TCP-ProtocolType erstellt wurde, eingehende Verbindungsanforderungen überwachen. Sie können eine Verbindung mit diesem Listener auf zwei verschiedene Arten herstellen:
Erstellen Sie einen TcpClient, und rufen Sie eine der drei verfügbaren Connect-Methoden auf.
Erstellen Sie einen TcpClient mit dem Hostnamen und der Anschlussnummer des Remotehosts. Dieser Konstruktor versucht automatisch, eine Verbindung herzustellen.
Hinweis
Verwenden Sie die UdpClient-Klasse, wenn Sie verbindungslose Datagramme im synchronen Blockiermodus senden möchten.
Hinweise für Erben Rufen Sie zum Senden und Empfangen von Daten einen NetworkStream mithilfe der GetStream-Methode ab. Rufen Sie die Write-Methode und die Read-Methode des NetworkStream auf, um Daten mit dem Remotehost senden und empfangen zu können. Mit der Close-Methode können Sie alle dem TcpClient zugeordneten Ressourcen freigeben.
Beispiel
Im folgenden Codebeispiel wird eine TcpClient-Verbindung hergestellt.
Shared Sub Connect(server As [String], message As [String])
Try
' Create a TcpClient.
' Note, for this client to work you need to have a TcpServer
' connected to the same address as specified by the server, port
' combination.
Dim port As Int32 = 13000
Dim client As New TcpClient(server, port)
' Translate the passed message into ASCII and store it as a Byte array.
Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
' Get a client stream for reading and writing.
' Stream stream = client.GetStream();
Dim stream As NetworkStream = client.GetStream()
' Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length)
Console.WriteLine("Sent: {0}", message)
' Receive the TcpServer.response.
' Buffer to store the response bytes.
data = New [Byte](256) {}
' String to store the response ASCII representation.
Dim responseData As [String] = [String].Empty
' Read the first batch of the TcpServer response bytes.
Dim bytes As Int32 = stream.Read(data, 0, data.Length)
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
Console.WriteLine("Received: {0}", responseData)
' Close everything.
stream.Close()
client.Close()
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException: {0}", e)
Catch e As SocketException
Console.WriteLine("SocketException: {0}", e)
End Try
Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
Console.Read()
End Sub 'Connect
static void Connect(String server, String message)
{
try
{
// Create a TcpClient.
// Note, for this client to work you need to have a TcpServer
// connected to the same address as specified by the server, port
// combination.
Int32 port = 13000;
TcpClient client = new TcpClient(server, port);
// Translate the passed message into ASCII and store it as a Byte array.
Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
// Get a client stream for reading and writing.
// Stream stream = client.GetStream();
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: {0}", message);
// Receive the TcpServer.response.
// Buffer to store the response bytes.
data = new Byte[256];
// String to store the response ASCII representation.
String responseData = String.Empty;
// Read the first batch of the TcpServer response bytes.
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
Console.WriteLine("Received: {0}", responseData);
// Close everything.
stream.Close();
client.Close();
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
Console.WriteLine("\n Press Enter to continue...");
Console.Read();
}
void Connect( String^ server, String^ message )
{
try
{
// Create a TcpClient.
// Note, for this client to work you need to have a TcpServer
// connected to the same address as specified by the server, port
// combination.
Int32 port = 13000;
TcpClient^ client = gcnew TcpClient( server,port );
// Translate the passed message into ASCII and store it as a Byte array.
array<Byte>^data = Text::Encoding::ASCII->GetBytes( message );
// Get a client stream for reading and writing.
// Stream stream = client->GetStream();
NetworkStream^ stream = client->GetStream();
// Send the message to the connected TcpServer.
stream->Write( data, 0, data->Length );
Console::WriteLine( "Sent: {0}", message );
// Receive the TcpServer::response.
// Buffer to store the response bytes.
data = gcnew array<Byte>(256);
// String to store the response ASCII representation.
String^ responseData = String::Empty;
// Read the first batch of the TcpServer response bytes.
Int32 bytes = stream->Read( data, 0, data->Length );
responseData = Text::Encoding::ASCII->GetString( data, 0, bytes );
Console::WriteLine( "Received: {0}", responseData );
// Close everything.
client->Close();
}
catch ( ArgumentNullException^ e )
{
Console::WriteLine( "ArgumentNullException: {0}", e );
}
catch ( SocketException^ e )
{
Console::WriteLine( "SocketException: {0}", e );
}
Console::WriteLine( "\n Press Enter to continue..." );
Console::Read();
}
static void Connect(String server, String message)
{
try {
// Create a TcpClient.
// Note, for this client to work you need to have a TcpServer
// connected to the same address as specified by the server, port
// combination.
Int32 port = (Int32)13000;
TcpClient client = new TcpClient(server, (int)port);
// Translate the passed message into ASCII and store
// it as a Byte array.
System.Byte data[] = (System.Byte[])
System.Text.Encoding.get_ASCII().GetBytes(message);
// Get a client stream for reading and writing.
// Stream stream = client.GetStream();
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write((ubyte[])data, 0, data.length);
Console.WriteLine("Sent: {0}", message);
// Receive the TcpServer.response.
// Buffer to store the response bytes.
data = new System.Byte[256];
// String to store the response ASCII representation.
String responseData = "";
// Read the first batch of the TcpServer response bytes.
Int32 bytes = (Int32)stream.Read((ubyte[])data, 0, data.length);
responseData = System.Text.Encoding.get_ASCII().GetString(
(ubyte[])data, 0, (int)bytes);
Console.WriteLine("Received: {0}", responseData);
// Close everything.
client.Close();
}
catch (ArgumentNullException e) {
Console.WriteLine("ArgumentNullException: {0}", e);
}
catch (SocketException e) {
Console.WriteLine("SocketException: {0}", e);
}
Console.WriteLine("\n Press Enter to continue...");
Console.Read();
} //Connect
.NET Framework-Sicherheit
- SocketPermission mit der ausgehende Verbindungen hergestellt oder eingehende Anforderungen angenommen werden können.
Vererbungshierarchie
System.Object
System.Net.Sockets.TcpClient
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
TcpClient-Member
System.Net.Sockets-Namespace
TcpListener
NetworkStream-Klasse
Socket-Klasse
ProtocolType-Enumeration
IPEndPoint-Klasse
Connect
Write
Read