TcpClient Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller klientanslutningar för TCP-nätverkstjänster.
public ref class TcpClient : IDisposable
public class TcpClient : IDisposable
type TcpClient = class
interface IDisposable
Public Class TcpClient
Implements IDisposable
- Arv
-
TcpClient
- Implementeringar
Exempel
I följande kodexempel upprättas en TcpClient anslutning.
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;
// Prefer a using declaration to ensure the instance is Disposed later.
using 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.
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: {0}", message);
// Receive the server 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);
// Explicit close is not necessary since TcpClient.Dispose() will be
// called automatically.
// 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();
}
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
' Prefer using declaration to ensure the instance is Disposed later.
Using 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.
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 server 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)
' Explicit close is not necessary since TcpClient.Dispose() will be
' called automatically.
' stream.Close()
' client.Close()
End Using
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
Kommentarer
Klassen TcpClient innehåller enkla metoder för att ansluta, skicka och ta emot dataström över ett nätverk i synkront blockeringsläge.
För att kunna TcpClient ansluta och utbyta data måste en eller Socket skapad TcpListener med TCP ProtocolType lyssna efter inkommande anslutningsbegäranden. Du kan ansluta till den här lyssnaren på något av följande två sätt:
Skapa en
TcpClientoch anropa någon av de tre tillgängliga Connect metoderna.Skapa en
TcpClientmed värdnamnet och portnumret för fjärrvärden. Konstruktorn försöker automatiskt ansluta.
Note
Om du vill skicka anslutningslösa datagram i synkront blockeringsläge använder du UdpClient klassen .
Anteckningar till arvingar
Om du vill skicka och ta emot data använder du GetStream() metoden för att hämta en NetworkStream. Write(Byte[], Int32, Int32) Anropa metoderna och Read(Byte[], Int32, Int32) för NetworkStream att skicka och ta emot data med fjärrvärden. Close(Int32) Använd metoden för att frigöra alla resurser som är associerade med TcpClient.
Konstruktorer
| Name | Description |
|---|---|
| TcpClient() |
Initierar en ny instans av TcpClient klassen. |
| TcpClient(AddressFamily) |
Initierar en ny instans av TcpClient klassen med den angivna familjen. |
| TcpClient(IPEndPoint) |
Initierar en ny instans av TcpClient klassen och binder den till den angivna lokala slutpunkten. |
| TcpClient(String, Int32) |
Initierar en ny instans av TcpClient klassen och ansluter till den angivna porten på den angivna värden. |
Egenskaper
| Name | Description |
|---|---|
| Active |
Hämtar eller anger ett värde som anger om en anslutning har upprättats. |
| Available |
Hämtar den mängd data som har tagits emot från nätverket och är tillgänglig för läsning. |
| Client |
Hämtar eller anger den underliggande Socket. |
| Connected |
Hämtar ett värde som anger om den underliggande Socket för en TcpClient är ansluten till en fjärrvärd. |
| ExclusiveAddressUse |
Hämtar eller anger ett Boolean värde som anger om endast TcpClient en klient kan använda en port. |
| LingerState |
Hämtar eller anger information om det dröjande tillståndet för den associerade socketen. |
| NoDelay |
Hämtar eller anger ett värde som inaktiverar en fördröjning när buffertar för att skicka eller ta emot inte är fulla. |
| ReceiveBufferSize |
Hämtar eller anger storleken på mottagningsbufferten. |
| ReceiveTimeout |
Hämtar eller anger hur lång tid en TcpClient väntar på att ta emot data när en läsåtgärd har initierats. |
| SendBufferSize |
Hämtar eller anger storleken på sändningsbufferten. |
| SendTimeout |
Hämtar eller anger hur lång tid en TcpClient väntar på att en sändningsåtgärd ska slutföras. |
Metoder
| Name | Description |
|---|---|
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Påbörjar en asynkron begäran om en fjärrvärdanslutning. Fjärrvärden anges av ett IPAddress och ett portnummer (Int32). |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Påbörjar en asynkron begäran om en fjärrvärdanslutning. Fjärrvärden anges av en IPAddress matris och ett portnummer (Int32). |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Påbörjar en asynkron begäran om en fjärrvärdanslutning. Fjärrvärden anges med ett värdnamn (String) och ett portnummer (Int32). |
| Close() |
Bortser från den här TcpClient instansen och begär att den underliggande TCP-anslutningen stängs. |
| Connect(IPAddress, Int32) |
Ansluter klienten till en fjärransluten TCP-värd med den angivna IP-adressen och portnumret. |
| Connect(IPAddress[], Int32) |
Ansluter klienten till en fjärransluten TCP-värd med angivna IP-adresser och portnummer. |
| Connect(IPEndPoint) |
Ansluter klienten till en fjärransluten TCP-värd med den angivna fjärrnätverksslutpunkten. |
| Connect(String, Int32) |
Ansluter klienten till den angivna porten på den angivna värden. |
| ConnectAsync(IPAddress, Int32) |
Ansluter klienten till en fjärransluten TCP-värd med den angivna IP-adressen och portnumret som en asynkron åtgärd. |
| ConnectAsync(IPAddress[], Int32) |
Ansluter klienten till en fjärransluten TCP-värd med angivna IP-adresser och portnummer som en asynkron åtgärd. |
| ConnectAsync(String, Int32) |
Ansluter klienten till den angivna TCP-porten på den angivna värden som en asynkron åtgärd. |
| Dispose() |
Släpper de hanterade och ohanterade resurser som används av TcpClient. |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av TcpClient och släpper eventuellt de hanterade resurserna. |
| EndConnect(IAsyncResult) |
Avslutar ett väntande asynkront anslutningsförsök. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Finalize() |
Frigör resurser som används av TcpClient klassen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetStream() |
Returnerar den NetworkStream som används för att skicka och ta emot data. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Detta API stöder produktinfrastrukturen och är inte avsett att användas direkt från koden. Släpper alla resurser som används av TcpClient. |