C# 在套接字中使用异步等待
在Stefen Toub的代码中:它没有提到它的异步方法的用法。我的意思是服务器程序将如何使用await调用async方法?也没有任何main()。请详细说明。我尝试创建一个main()并调用SocketExtensions.ReceiveAsync(sock,waitiable)强>C# 在套接字中使用异步等待,c#,sockets,async-await,asyncsocket,C#,Sockets,Async Await,Asyncsocket,在Stefen Toub的代码中:它没有提到它的异步方法的用法。我的意思是服务器程序将如何使用await调用async方法?也没有任何main()。请详细说明。我尝试创建一个main()并调用SocketExtensions.ReceiveAsync(sock,waitiable) public static void Main(string[] str) { Console.WriteLine("\n\n<<<<<<<<<<&
public static void Main(string[] str)
{
Console.WriteLine("\n\n<<<<<<<<<<< Server is starting... >>>>>>>>>>>>>>>>>");
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 10100);
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
var args = new SocketAsyncEventArgs();
args.SetBuffer(new byte[0x100000], 0, 0x100000);
var awaitable = new SocketAwaitable(args);
while(true)
SocketExtensions.ReceiveAsync(sock,awaitable);
}
publicstaticvoidmain(string[]str)
{
Console.WriteLine(“\n\n>>>>>”;
IPEndPoint remoteEP=新的IPEndPoint(IPAddress.Parse(“127.0.0.1”),10100;
Socket sock=新套接字(AddressFamily.InterNetwork、SocketType.Stream、ProtocolType.Tcp);
var args=new SocketAsyncEventArgs();
args.SetBuffer(新字节[0x100000],0,0x100000);
var awaitable=新的SocketAwaitable(args);
while(true)
SocketExtensions.ReceiveAsync(sock,可等待);
}
但这对我来说并不管用。斯蒂芬·图布的博客文章不是一篇套接字教程;它展示了如何使用定制的可等待项来支持极高性能的套接字应用程序 我建议您从WebAPI或WCF之类的东西开始,并在必要时只使用裸套接字。如果您确实需要使用套接字,那么我建议您首先使用
TaskFactory.fromsync
来包装Begin
/End
方法;这是一个效率稍低但更简单的编程模型。如果性能测试表明您的服务器在这一点上不够快,那么您应该使用Stephen Toub博客文章中的定制等待器方法
服务器无法工作的原因是您没有倾听或接受。我建议您改用WebAPI或WCF;它展示了如何使用定制的可等待项来支持极高性能的套接字应用程序 我建议您从WebAPI或WCF之类的东西开始,并在必要时只使用裸套接字。如果您确实需要使用套接字,那么我建议您首先使用
TaskFactory.fromsync
来包装Begin
/End
方法;这是一个效率稍低但更简单的编程模型。如果性能测试表明您的服务器在这一点上不够快,那么您应该使用Stephen Toub博客文章中的定制等待器方法
服务器无法工作的原因是您没有倾听或接受。我建议您改用WebAPI或WCF;它展示了如何使用定制的可等待项来支持极高性能的套接字应用程序 我建议您从WebAPI或WCF之类的东西开始,并在必要时只使用裸套接字。如果您确实需要使用套接字,那么我建议您首先使用
TaskFactory.fromsync
来包装Begin
/End
方法;这是一个效率稍低但更简单的编程模型。如果性能测试表明您的服务器在这一点上不够快,那么您应该使用Stephen Toub博客文章中的定制等待器方法
服务器无法工作的原因是您没有倾听或接受。我建议您改用WebAPI或WCF;它展示了如何使用定制的可等待项来支持极高性能的套接字应用程序 我建议您从WebAPI或WCF之类的东西开始,并在必要时只使用裸套接字。如果您确实需要使用套接字,那么我建议您首先使用
TaskFactory.fromsync
来包装Begin
/End
方法;这是一个效率稍低但更简单的编程模型。如果性能测试表明您的服务器在这一点上不够快,那么您应该使用Stephen Toub博客文章中的定制等待器方法
服务器无法工作的原因是您没有倾听或接受。我建议您改用WebAPI或WCF。什么确切的“不起作用”?什么确切的“不起作用”?什么确切的“不起作用”?什么确切的“不起作用”?