UdpClient之间通信时除了用数据包还可以用流吗?
我找了下书,书上好象只有用Tcp协议是才用到流,Udp好象都是用包的。
高手指教……

解决方案 »

  1.   

    UDP数据报协议是无连接的协议,不可以使用NetworkStream,你用Send和Receive就可以完成了。
      

  2.   

    Socket sock=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Udp);
    NetworkStream myNetworkStream = new NetworkStream(sock, true);不过上面的代码编译正常,谁能说说原因吗?
      

  3.   

    不管是tcp还是udp,都是基于ip协议,所以都是基于数据包的TcpClient和UdpClient都可以用NetworkStream,因为它只是网络数据的一个包装(让一连串数据包看起来像个流)
      

  4.   

    你可以用Reflector去反编译UdpClient和NetworkStream类
      

  5.   

    针对你的问题udpclient不支持流
      

  6.   

    sorry
    刚才我说的不对Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Udp);
    NetworkStream myNetworkStream = new NetworkStream(sock, true);这段代码编译时正常,但是执行时错误
    NetworkStream需要的Socket的SocketType必须是Stream
    而new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Udp);这段就会弹出错误,SocketType.Stream和ProtocolType.Udp是非法的组合所以你的两行代码全错了
      

  7.   

    啊,我只试着编译这两行代码没有出错提示,但在运行时确实有异常。
    当时没怎么留意是什么问题!
    那看来Udp协议是不能用流了!