TcpClient-Klasse
Assembly: System (in system.dll)
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. |
Im folgenden Codebeispiel wird eine TcpClient-Verbindung hergestellt.
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(); }
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
- SocketPermission mit der ausgehende Verbindungen hergestellt oder eingehende Anforderungen angenommen werden können.
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.
Hinweis