问题一:
看csdn里面,TCP网络的发送可以用 socket.send()方法,也可以将socket先流化,即NetworkStream ns=new NetworkStream(socket),再调用ns.write()进行发送。请问这两种发送方法有什么区别么?问题二:
socket.send()出去后,再另一端可以将接听的socket流化,再调用ns.wread()进行读么?谢谢大家了!!

解决方案 »

  1.   

    Send 将数据同步发送到 Connect 或 Accept 方法中指定的远程主机,并返回成功发送的字节数。Send 对面向连接的协议和无连接协议均适用。
    Receive 方法将数据读入缓冲区参数,并返回成功读取的字节数。从面向连接的套接字和无连接套接字中都可以调用 Receive。
    Write 方法在指定的 offset 处启动,并将 buffer 内容中的 size 字节发送到网络。
      

  2.   

       流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。   Visual C#中操作Socket: 虽然Visual C#可以使用NetworkStream来传送、接收数据,但NetworkStream在使用中有很大的局限性,利用NetworkStream只能传送和接收字符类型的数据,如果要传送的是一些复杂的数据如:二进制数据等,它就显得能力有限了。但使用NetworkStream在处理自身可操作数据时,的确要比Socket方便许多。Socket(套接字)几乎可以处理任何在网络中需要传输的数据类型。
      

  3.   

    NetworkStream主要用于让TcpClient方便使用。如果你不使用TcpClient,那么从习惯上也就为了简单性而不必使用NetworkStream。