一、网络流
1.    最常用的方法  Read()  Write()    Flush()
  1. NetworkStream netStream = new NetworkStream(mesock);
  2. byte[] nyByte = new Byte[];
  3. // Read() :
  4. netStream.Read(myByte, , myByte.Length);
  5. // Write():
  6. netStream.Write(myByte, , myByte.Length);
  7. netStream.Flush();
二、文本流
1.    文本编码格式:
        ASCII(几乎支持所有协议)    UTF8(支持SMTP协议、POP3协议, 支持汉字传输)    BigEndianUnicode码(是双字节码,所以一般协议不用这个, 支持汉字传输)
  <1> 向文件写文本流
  1. StreamWrite sw = null;
  2. sw = new StreamWrite("f:\\1.txt", false, System.Text.Encoding.UTF8); // 如文件不存在则创建,存在则打开,并且用新数据覆盖旧数据
  3. sw.Write("写入的信息");
  4. sw.Close();
  <2>打开文件时指定文件权限和编码格式
  1. sw = new StreamWrite("f:\\1.txt" true, System.Text.Encoding.UTF8); // 如文件不存在则创建,存在则打开,并且新数据在旧数据后面
  <3> 向网络写入文本
  1. string data = "abcdefghijklmnopqrstuvwxyz";
  2. byte[] datas = System.Text.Encoding.UTF8.GETBytes(data);
  3. NetworkStream netStream = new NetworkStream(mysock);
  4. netStream.Write(myByte, , myByte.Length);
  <4> 从文件读取文本
  1. StreamReader sr = null;
  2. sr = new StreamReader("f:\\1.txt", false, System.Text.Encoding.UTF8);
  3. string data = sr.ReadToEnd();
  4. sr.Close();
  <5> 从网络读取文本
  1. string data = "abcdefghijklmnopqrstuvwxyz";
  2. byte[] datas = System.Text.Encoding.UTF8.GETBytes(data);
  3. NetworkStream netStream = new NetworkStream(mysock);
  4. netStream.Read(myByte, , myByte.Length);
三、 文件流(主要用于读写非文本文件)  
  <1> 将网络流数据写入文件
  1. FileStream filestream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
  2. int readNumber = ;
  3. bytep[] byte = new byte[];
  4. while ( (readNumber = stream.Read(byte, , )) > )
  5. {
  6. filestream.Write(byte, , readNumber);
  7. filestream.Flush();
  8. }
  9. filestream.Close();
  <2> 读文件并写入网络流  
  1. FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
  2. int number = ;
  3. // 定义缓冲区
  4. byte[] bb = new bytep8[];
  5. // 循环读文件
  6. NetworkStream stream = new NetworkStream(newClient);
  7. while ( (number=filestream.Read(bb, , )) != )
  8. {
  9. // 向客户端发送流
  10. stream.Write(bb, , );
  11. }

c#基础: NetWorkStream类的主要属性的更多相关文章

  1. springMVC基础controller类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:设置请求.响应对象:session.cookie操作:ajax访问返回json数据: 创建springMVC基础con ...

  2. hibernate基础dao类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:数据库的保存.更新.删除:sql.hql查询:分页查询:调用存储过程 创建hibernate基础dao类: BaseD ...

  3. [.net 面向对象编程基础] (9) 类和类的实例

    [.net 面向对象编程基础] (9) 类和类的实例 类 ,顾名思义就是分类.类别的意思.我们要面向对象编程,就需要对不同的事物进行分类.类可以说是.net面向对象的核心. 类:就是具有相同的属性和功 ...

  4. [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)

    [.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...

  5. python基础——枚举类

    python基础——枚举类 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12 好处是简单 ...

  6. python基础——定制类

    python基础——定制类 看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的. __slots__我们已经知道怎么用了,__len__()方 ...

  7. Python基础-类的探讨(class)

    Python基础-类的探讨(class) 我们下面的探讨基于Python3,我实际测试使用的是Python3.2,Python3与Python2在类函数的类型上做了改变 1,类定义语法  Python ...

  8. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

  9. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

随机推荐

  1. [A Top-Down Approach][第二章 应用层]

    [A Top-Down Approach][第二章 应用层] 标签(空格分隔): 未分类 网络应用是计算机网络存在的理由 首先从定义几个关键的应用层概念开始 应用程序所需要的网络服务,客户和服务器,进 ...

  2. 重学《C#高级编程》(泛型与数组)

    前段时间工作比较忙,就没有写随笔了,现在继续. 前两天重新看了泛型和数组两章,简单说下我自己的收获吧 泛型 我们知道数组是一种批量的数据格式,而泛型其实就是一种自定义的批量数据格式,当数组和C#现有的 ...

  3. C++中的struct与class继承方式

    代码: #include <iostream> #include <cstdio> using namespace std; //class A{ struct A{ publ ...

  4. ZOJ3558 How Many Sets III(公式题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud How Many Sets III Time Limit: 2 Seconds   ...

  5. Java系列--第七篇 基于Maven的Android开发实战项目

    本篇是基于<Android应用案例开发大全,吴亚峰等著>的项目开发实例源码,其中有些图片,我做了一些修改,用于个人学习,请勿用于商业. 1, 日程管理专家 mvn archetype:ge ...

  6. 恢复root用户目录,及~目录

    普通帐号登su;mkdir /root;chown root:root /root cp -R /etc/skel/.[!.]* ./

  7. 《python基础教程》笔记之 更加抽象

    方法.函数和特性 函数和方法的区别在于self参数,方法(绑定方法)将它们的第一个参数帮顶到所属的实例上,因此这个参数可以不必提供.可以将特性绑定到一个普通函数上,这样就不会有特殊的self参数了,换 ...

  8. 工程和界面—Webstorm入门指南 Webstorm中的工程-备

    1.新建工程 “Quick Start”界面新建工程: 也可以点击顶部菜单栏“File”-> “New Project”. 弹出如下界面: “Location”指向想要创建的工程目录(如果该目录 ...

  9. 转:AM335x启动流程(BootRom->MLO->Uboot)

    http://blog.chinaunix.net/uid-28458801-id-3486399.html 参考文件: 1,AM335x ARM Cortex-A8 Microprocessors ...

  10. Javascript quiz

    作为一个勤劳的corder,在大年三十的前一天还留守在公司的最前线.百无聊赖中看到一套关于js的测试题,测试过后发现有些题还是有很大的意义,至少能够让我门对js基础有所重视.本人将每道题的考察点总结了 ...