在C#中,使用TcpClient
類可以實(shí)現(xiàn)TCP客戶端的功能
using System;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
try
{
// 創(chuàng)建一個(gè)TcpClient實(shí)例
TcpClient tcpClient = new TcpClient();
// 設(shè)置連接超時(shí)時(shí)間(單位:毫秒)
int timeout = 5000;
// 異步連接服務(wù)器
IAsyncResult result = tcpClient.BeginConnect("127.0.0.1", 8080, null, null);
// 等待連接成功或超時(shí)
bool success = result.AsyncWaitHandle.WaitOne(timeout);
if (success)
{
Console.WriteLine("連接成功");
// 結(jié)束異步連接
tcpClient.EndConnect(result);
// 這里可以添加與服務(wù)器通信的代碼
// 關(guān)閉TcpClient
tcpClient.Close();
}
else
{
Console.WriteLine("連接超時(shí)");
// 取消連接
tcpClient.Close();
}
}
catch (Exception ex)
{
Console.WriteLine("發(fā)生異常: " + ex.Message);
}
}
}
在這個(gè)示例中,我們首先創(chuàng)建了一個(gè)TcpClient
實(shí)例。然后,我們使用BeginConnect
方法異步連接到服務(wù)器。接下來,我們使用AsyncWaitHandle.WaitOne
方法等待連接成功或超時(shí)。如果連接成功,我們調(diào)用EndConnect
方法結(jié)束異步連接,并繼續(xù)與服務(wù)器通信。如果連接超時(shí),我們關(guān)閉TcpClient
實(shí)例并取消連接。