TcpClient Class

命名空间:

System.Net.Sockets

Assemblies:

System.Net.Sockets.dll, System.dll, netstandard.dll

TCP 网络服务提供客户端连接。

public class TcpClient : IDisposable

示例

下面的代码示例建立TcpClient连接。

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();
}

注解

TcpClient类提供了简单方法来连接、 发送,并接收中同步阻止模式下通过网络流式传输数据。

为了使TcpClient连接和交换数据,TcpListenerSocket使用 TCP 创建ProtocolType必须侦听传入连接请求。 可以在以下两种方式之一连接到此侦听器:

  • 创建TcpClient并调用其中一个可用的三个Connect方法。
  • 创建TcpClient使用主机名和端口号的远程主机。 此构造函数将自动尝试进行连接。

备注
如果你想要将无连接的数据报发送在同步阻塞模式下,使用UdpClient类。

继承者说明

若要发送和接收数据,请使用GetStream()方法来获取NetworkStream。 调用Write(Byte[], Int32, Int32)Read(Byte[], Int32, Int32)方法的NetworkStream发送和接收数据与远程主机。 使用Close(Int32)方法来释放与关联的所有资源TcpClient

构造函数

名称说明
TcpClient()初始化 TcpClient 类的新实例。
TcpClient(AddressFamily)使用指定的族初始化 TcpClient 类的新实例。
TcpClient(IPEndPoint)初始化 TcpClient 类的新实例,并将其绑定到指定的本地终结点。
TcpClient(String, Int32)初始化 TcpClient 类的新实例并连接到指定主机上的指定端口。

属性

名称说明
Active获取或设置一个值,它指示是否已建立连接。
Available获取已经从网络接收且可供读取的数据量。
Client获取或设置基础 Socket。
Connected获取一个值,该值指示 Socket 的基础 TcpClient 是否已连接到远程主机。
ExclusiveAddressUse获取或设置 Boolean 值,指定 TcpClient 是否只允许一个客户端使用端口。
LingerState获取或设置有关关联的套接字的延迟状态的信息。
NoDelay获取或设置一个值,该值在发送或接收缓冲区未满时禁用延迟。
ReceiveBufferSize获取或设置接收缓冲区的大小。
ReceiveTimeout获取或设置在初始化一个读取操作以后 TcpClient 等待接收数据的时间量。
SendBufferSize获取或设置发送缓冲区的大小。
SendTimeout获取或设置 TcpClient 等待发送操作成功完成的时间量。

方法

名称说明
BeginConnect(IPAddress, Int32, AsyncCallback, Object)开始一个对远程主机连接的异步请求。 远程主机由 IPAddress 和端口号 (Int32) 指定。
BeginConnect(IPAddress[], Int32, AsyncCallback, Object)开始一个对远程主机连接的异步请求。 远程主机由 IPAddress 数组和端口号 (Int32) 指定。
BeginConnect(String, Int32, AsyncCallback, Object)开始一个对远程主机连接的异步请求。 远程主机由主机名 (String) 和端口号 (Int32) 指定。
Close()释放此 TcpClient 实例,并请求关闭基础 TCP 连接。
Connect(IPAddress, Int32)使用指定的 IP 地址和端口号将客户端连接到 TCP 主机。
Connect(IPAddress[], Int32)使用指定的 IP 地址和端口号将客户端连接到远程 TCP 主机。
Connect(IPEndPoint)使用指定的远程网络终结点将客户端连接到远程 TCP 主机。
Connect(String, Int32)将客户端连接到指定主机上的指定端口。
ConnectAsync(IPAddress, Int32)使用指定的 IP 地址和端口号将客户端连接到远程 TCP 主机以作为异步操作。
ConnectAsync(IPAddress[], Int32)使用指定的 IP 地址和端口号将客户端连接到远程 TCP 主机以作为异步操作。
ConnectAsync(String, Int32)将客户端连接到指定主机上的指定 TCP 端口以作为异步操作。
Dispose()释放由 TcpClient 占用的托管和非托管资源。
Dispose(Boolean)释放由 TcpClient 占用的非托管资源,还可以另外再释放托管资源。
EndConnect(IAsyncResult)结束挂起的异步连接尝试。
Equals(Object)确定指定的对象是否等于当前对象。
(Inherited from Object)
Finalize()释放 TcpClient 类使用的资源。
GetHashCode()作为默认哈希函数。
(Inherited from Object)
GetStream()返回用于发送和接收数据的 NetworkStream。
GetType()获取当前实例的 Type。
(Inherited from Object)
MemberwiseClone()创建当前 Object 的浅表副本。
(Inherited from Object)
ToString()返回表示当前对象的字符串。
(Inherited from Object)

显式界面实现

IDisposable.Dispose()	

释放由 TcpClient 使用的所有资源。

安全性

SocketPermission 

若要建立传出连接,或接受传入请求的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值