用AsyncCtp实现一个简单的EchoServer
摘要: 看到今天又支持SP1的AsyncCTP下载了,下载试用了一下,顺便写了一个EchoServer。staticvoidMain(string[]args){varlistener=newTcpListener(newIPEndPoint(IPAddress.Loopback,3000));listener.Start();while(true){varclient=listener.AcceptTcpClient();TaskEx.Run(async()=>{using(varstream=client.GetStream())using(varwriter=newStreamWriter
阅读全文
posted @
2011-04-14 23:55 天方 阅读(209) |
评论 (0) 编辑
用Reactive Extensions实现一个简单的EchoServer
摘要: 在昨天的随笔Reactive Extensions学习里,我写了个简单的stream异步读操作的扩展封装。今天我用它来实现了一个简单的EchoServer://一个简单的异步echoserverstaticvoidMain(string[]args){varlistener=newTcpListener(newIPEndPoint(IPAddress.Loopback,3000));listener.Start();while(true){varclient=listener.AcceptTcpClient();varstream=client.GetStream();varwriter=ne
阅读全文
posted @
2011-04-11 20:22 天方 阅读(172) |
评论 (1) 编辑
Reactive Extensions学习
摘要: 今天抽空学习了一下Reactive Extensions库,感觉还是比较容易上手的,顺手练习了一下,写了个ReadAsync的扩展。staticvoidMain(string[]args){varbufferSize=1000;varbuffer=newbyte[bufferSize];varstream=File.OpenRead(@"r:\1.txt");stream.ReadAsync(buffer).Subscribe(onNext:i=>{Console.Write(Encoding.Default.GetString(buffer,0,i));},onCo
阅读全文
posted @
2011-04-11 00:13 天方 阅读(275) |
评论 (1) 编辑
实现双击IE9的Tab键关闭当前页面的功能
摘要: 今天研究了一下如何实现双击IE9的Tab键关闭当前页面的功能,实现这个功能的基本原理如下:建立全局鼠标钩子,获取双击Tab时候的消息,触发Tab被双击的事件。发送Ctrl+W键盘消息,触发快捷键功能关闭当前Tab页。这里有几个问题需要解决:如何获取鼠标双击事件:通过spy++检测后发现,发现Tab栏是一个类型为DirectUIHWND的类,它是一个TabControl,本身并不支持鼠标双击消息,因此,需要自己根据MouseUP消息判断是否为双击消息(通过两次MouseUp的时间间隔来判断)。如何判断是否双击的Tab栏:由于创建的是全局钩子,所有的鼠标消息都会被截取到,因此这里要进行过滤。具体的
阅读全文
posted @
2011-04-05 16:52 天方 阅读(486) |
评论 (0) 编辑