日期:2014-05-17  浏览次数:20774 次

请问,C# 如何实现异步非阻塞网络编程?谁有代码,给我发一份,谢谢
请问,C# 如何实现异步非阻塞网络编程?谁有代码,给我发一份,谢谢

------解决方案--------------------
开线程就可以实现。
------解决方案--------------------
最基本地,你要建立“事件驱动”的编程设计概念。如果连事件驱动概念都没有,如果以为什么都是定时轮询,那么你的程序设计的理论基础也就只打下了一半,你的设计实践基础可能只打下了五分之一。即使是一些号称20年前就学过编程的人,如果不了解事件(或委托、或回调)等软件逻辑设计中的依赖倒置技术,那么就会永远都仅仅抠概念上的“是非”,而不能做出因应显示地架构的完全灵活的设计来。
------解决方案--------------------
因应显示地架构的完全灵活的设计来 -->  因应现实地架构的完全灵活的设计来

事件发生了,于是回调之前的宿主们注册的委托,来通知他们处理事件。这在DOS时代就是最基本编程技术,在windows中更是如此。按说,如果你有一些对软件的历史和系统软件设计知识的理解,你一旦接触一本编程语言必定要想去看看它如何处理底层各种驱动机制的事件驱动编程问题。

可惜一些人只喜欢简单的脚本编程,没有“现实的”程序设计概念。
------解决方案--------------------
比如说,我们想知道一旦某个文件被修改了,我们的程序如何刷新内部缓存对象;或者一旦监听tcp服务得到数据,我们的程序如何处理,诸如此类的编程知识,是你进行现实的编程设计的基础。

实际上遇到这种问题,我会觉得很无趣。因为实践者处处从这类设计角度出发去设计程序,外设驱动所触发的事件驱动了整个系统的流程,这是程序设计的基础。而业余开发人员把这些当作什么“技巧”去看待。
------解决方案--------------------
请看这里:

c#用socket实现服务端向客户端发送命令的例子及源码下载
http://www.xiaoyaolife.com/Article/151083.html
------解决方案--------------------
异步非阻塞主要是使用异步编程了,关于异步编程可以参考我的博文:http://www.cnblogs.com/zhili/archive/2013/05/10/APM.html
具体的异步非阻塞的网络编程参考下面博客:http://www.cnblogs.com/ruishuang208/archive/2013/06/11/3132274.html
------解决方案--------------------
搞窗体的
多个客户端同时访问一个服务器来回发送消息