socket.BeginConnect(endPoint, (result) => { try { socket.EndConnect(result); Console.WriteLine("连接成功!"); } catch (Exception ex) { Console.WriteLine("连接失败:" + ex.Message); } }, null);请不要使用lamda表达式表达
时间: 2024-01-22 22:01:44 浏览: 104
以下是使用普通的方法定义来实现socket.BeginConnect()的示例代码:
```csharp
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080);
socket.BeginConnect(endPoint, new AsyncCallback(ConnectCallback), socket);
private static void ConnectCallback(IAsyncResult result)
{
Socket socket = (Socket)result.AsyncState;
try
{
socket.EndConnect(result);
Console.WriteLine("连接成功!");
}
catch (Exception ex)
{
Console.WriteLine("连接失败:" + ex.Message);
}
}
```
在上面的示例中,我们使用了一个名为ConnectCallback的回调方法来处理异步连接的结果。在BeginConnect方法中,我们将ConnectCallback方法作为回调函数传递给BeginConnect方法。在ConnectCallback方法中,我们使用result.AsyncState属性来获取异步连接操作的相关Socket对象,然后使用EndConnect方法等待异步操作完成,并根据连接结果输出相应的信息。
阅读全文