看到今天又支持SP1的AsyncCTP下载了,下载试用了一下,顺便写了一个EchoServer。
static
void
Main(
string
[] args)
{
var listener = new TcpListener( new IPEndPoint(IPAddress.Loopback, 3000 ));
listener.Start();
while ( true )
{
var client = listener.AcceptTcpClient();
TaskEx.Run(async () =>
{
using (var stream = client.GetStream())
using (var writer = new StreamWriter(stream) { AutoFlush = true })
using (var reader = new StreamReader(stream))
{
var line = string .Empty;
while ((line = await reader.ReadLineAsync()) != null )
{
await writer.WriteAsync( " >>> " + line + Environment.NewLine);
}
Console.WriteLine( " connection closed " );
}
});
}
}
{
var listener = new TcpListener( new IPEndPoint(IPAddress.Loopback, 3000 ));
listener.Start();
while ( true )
{
var client = listener.AcceptTcpClient();
TaskEx.Run(async () =>
{
using (var stream = client.GetStream())
using (var writer = new StreamWriter(stream) { AutoFlush = true })
using (var reader = new StreamReader(stream))
{
var line = string .Empty;
while ((line = await reader.ReadLineAsync()) != null )
{
await writer.WriteAsync( " >>> " + line + Environment.NewLine);
}
Console.WriteLine( " connection closed " );
}
});
}
}
基本上和用同步的方式差不多,非常直接。