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

c#可以写驱动吗?
接收TCP的数据,做一些转换之后,以UDP的方式发送出去
求大牛指点

------解决方案--------------------
引用:
Quote: 引用:

.net上运行的程序都在.net这个框架中,你指望硬件厂商也提供这个框架?如果他们都提供这个框架那你就可以使用.net来编写了。


我是想完成这样的功能,用TCP的方式接收一个IP地址传送的数据,把数据进行一些处理之后,用UDP的方式发送出去,现在完全没有思路
现在不知道从哪里去找相关的资料
这个不是写驱动,是socket通讯,很简单的IP对IP发送和接受数据。你网上搜一下一大把入门的例子,试着写几个就熟练了。
------解决方案--------------------
当然可以写了,C++能做的事情,C#可以全部实现。
------解决方案--------------------
不知道这叫做什么驱动?

这种东西是入门的。如果你只是“求代码”,不如先舍得花点钱买本入门书来照猫画虎写最基本的那几条tcp和udp代码,或者干脆就正规地花个一周时间学学tcp和udp概念。

或者如果你反正也伤不了正规的软件学院,那么干脆你就去花钱上社会的培训班。

没有人会把外延空泛但是毫无技术的入门问题,自己再设计一个例子,给你写帖子的。
------解决方案--------------------
我还是再给科普下“什么叫驱动”。不要把驱动想象的太神秘,其实驱动就是运行在内核态中的程序。

操作系统分为2个层次,内核状态,可以使用CPU特权指令,访问硬件和特定的内存,以及用户状态,用户状态下的程序相对隔离并且不能直接访问硬件,保证了程序的通用性和互不干扰地独立运行。所谓“驱动程序”,本质上就是操作系统内核的扩展。

通常来说,C#编写的程序,需要依赖.NET框架,因而必须在用户状态下运行,所以说C#不能编写驱动是正确的。但是反过来说,任何运行在用户状态的应用程序,最终都得访问硬件,只不过这个过程是通过操作系统去掉用驱动,间接的而已。因此,你完全可以编写一个相对紧凑和通用的驱动程序,作为代理,把那些关键的必须在内核中才能完成的事情做掉,并且将无需内核状态就能完成的事情转交给用户状态的程序处理,那么C#也可以配合驱动程序,完成一部分的任务,从这个意义上说,C#也可以写驱动程序。