c#能不能写一个象迅雷或者网际快车那样的下载加速内核啊?
如果可以的话,那么基本思路是怎样的,哪位大哥给解释解释啊.

解决方案 »

  1.   

    完全可以, 因为 .net 直接支持操作系统底层 的网络核心 ---Socks实际上  Socks 封装在 System.Net.Socks 命名空间内,只要利用这个 类库 OS支持的所有类型的网络都可用。还有关于协议 可以查询相应的技术文档,Http , FTP 等协议 都可以在 w3c 官方网站可查询
    mms , rtsp 等协议可以在 相应的SDK 中找到线索其它的就是 怎样设计 怎样编码了
      

  2.   

    基本方法就是用socket编程
    Socket 类为网络通信提供了一套丰富的方法和属性。Socket 类允许您使用 ProtocolType 枚举中所列出的任何一种协议执行异步和同步数据传输。Socket 类遵循异步方法的 .NET Framework 命名模式;例如,同步 Receive 方法对应于异步 BeginReceive 和 EndReceive 方法。如果应用程序在执行期间只需要一个线程,请使用下面的方法,这些方法适用于同步操作模式。 如果当前使用的是面向连接的协议(如 TCP),则服务器可以使用 Listen 方法侦听连接。Accept 方法处理任何传入的连接请求,并返回可用于与远程主机进行数据通信的 Socket。可以使用此返回的 Socket 来调用 Send 或 Receive 方法。如果要指定本地 IP 地址和端口号,请在调用 Listen 方法之前先调用 Bind 方法。如果不调用 Bind,基础服务提供程序将为您分配这些值。此后,可以使用 LocalEndPoint 属性来标识分配给 Socket 的 IP 地址和端口号。如果想连接到侦听主机,请调用 Connect 方法。若要进行数据通信,请调用 Send 或 Receive 方法。 
    如果当前使用的是无连接协议(如 UDP),则根本不需要侦听连接。调用 ReceiveFrom 方法可接受任何传入的数据报。使用 SendTo 方法可将数据报发送到远程主机。 
    若要在执行过程中使用单独的线程处理通信,请使用下面的方法,这些方法适用于异步操作模式。 如果当前使用的是面向连接的协议(如 TCP),则可使用 Socket、BeginConnect 和 EndConnect 方法来连接侦听主机。通过使用 BeginSend 和 EndSend 方法,或者使用 BeginReceive 和 EndReceive 方法,可以进行异步数据通信。可以使用 BeginAccept 和 EndAccept 处理传入的连接请求。 
    如果当前使用的是无连接协议(如 UDP),则可以使用 BeginSendTo 和 EndSendTo 来发送数据报,而使用 BeginReceiveFrom 和 EndReceiveFrom 来接收数据报。 
    当数据发送和数据接收完成之后,可使用 Shutdown 方法来禁用 Socket。在调用 Shutdown 之后,可调用 Close 方法来释放与 Socket 关联的所有资源。Socket 类允许使用 SetSocketOption 方法来配置 Socket。可使用 GetSocketOption 方法来检索这些设置。注意   如果编写较简单的应用程序,而且只需同步数据传输,则可以考虑使用 TcpClient、TcpListener 和 UdpClient。这些类为 Socket 通信提供了更简单、对用户更友好的接口。