NetWorkStream类简单例程

一、网络流

1.    最常用的方法  Read()  Write()    Flush()

NetworkStream netStream = new NetworkStream(mesock);
byte[] nyByte = new Byte[1024];
// Read() :
netStream.Read(myByte, 0, myByte.Length);
// Write():
netStream.Write(myByte, 0, myByte.Length);
netStream.Flush();

二、文本流

1.    文本编码格式:

        ASCII(几乎支持所有协议)    UTF8(支持SMTP协议、POP3协议, 支持汉字传输)    BigEndianUnicode码(是双字节码,所以一般协议不用这个, 支持汉字传输)

  <1> 向文件写文本流

StreamWrite sw = null;
sw = new StreamWrite("f:\\1.txt", false, System.Text.Encoding.UTF8); 
// 如文件不存在则创建,存在则打开,并且用新数据覆盖旧数据
sw.Write("写入的信息");
sw.Close();

 <2>打开文件时指定文件权限和编码格式

sw = new StreamWrite("f:\\1.txt", true, System.Text.Encoding.UTF8); 
// 如文件不存在则创建,存在则打开,并且新数据在旧数据后面

 <3> 向网络写入文本

 string data = "abcdefghijklmnopqrstuvwxyz";
 byte[] datas = System.Text.Encoding.UTF8.GETBytes(data);
 NetworkStream netStream = new NetworkStream(mysock);
 netStream.Write(myByte, 0, myByte.Length);

<4> 从文件读取文本

StreamReader sr = null;
sr = new StreamReader("f:\\1.txt", false, System.Text.Encoding.UTF8);
string data = sr.ReadToEnd();
sr.Close();

 <5> 从网络读取文本

string data = "abcdefghijklmnopqrstuvwxyz";
byte[] datas = System.Text.Encoding.UTF8.GETBytes(data);
NetworkStream netStream = new NetworkStream(mysock);
netStream.Read(myByte, 0, myByte.Length);

三、 文件流(主要用于读写非文本文件)  

  <1> 将网络流数据写入文件

FileStream filestream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
int readNumber = 0;
bytep[] byte = new byte[8];
while ( (readNumber = stream.Read(byte, 0, 8)) > 0)
{
    filestream.Write(byte, 0, readNumber);
    filestream.Flush();
}
filestream.Close();

<2> 读文件并写入网络流  

FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
int number = 0;
// 定义缓冲区
byte[] bb = new bytep8[];
// 循环读文件
NetworkStream stream = new NetworkStream(newClient);
while ( (number=filestream.Read(bb, 0, 8)) != 0)
{
    // 向客户端发送流
    stream.Write(bb, 0, 8);
}

https://www.cnblogs.com/kafeibuku/p/5320350.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值