Socket 的创建。

// 创建负责监听的Socket// 第一个参数AddressFamily设置网络寻址协议,InterNetwork表示IPV4// 第二个参数SocketType设置数据传输方式(Socket类型),这个要根据第三个参数来设置,Stream此类型的 Socket 与单个对方主机进行通信,并且在通信开始之前需要远程主机连接// 第三个参数为UDP协议时,第二个参数就要为Dgram(报文)Socket socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

一。网络流

网络流(NetworkStream)用于传输数据,NetworkStream类用于网络访问的基础流,需要引用System.Net.Sockets 类 而 NetworkStream实现了通过网络套接字发送和接收数据的标准,并且NetworkStream支持网络流的的同步和异步访问。

NetworkStream构造方法有如下几种 如图:



常用属性如下:

NetworkStream常用方法如下:

二。文本流

文本流用于读写文本
文本流用于文本的读写。要谈文本,首先要了解的是文本编码。在网络编程中,常用的是ASCII、UTF8和 BigEndianUnicode码其中ASCII码最为常用,几乎所有协议都支持ASCII码,SMTP和POP3协议使用UTF8编码,但也支持ASCII码, BigEndianUnicod码是双字节码,一般协议不用该种编码作为命令码,因为双字节码在解码时较为繁琐,容易出 错。UTF8和 BigEndianUnicod编码支持汉字传输,其中UF8码使用起来较为方便,可以像使用ASCI码一样使用UTF8码。下面演示向文件中和向网络中写文本流:

●向文件写文本流
下列代码演示新建或打开(如果不存在,就新建一个文件;如果已经存在,则打开)
一个文件,然后向文件写文本数据,并且新数据代替旧数据。

  StreamWriter sw=null;sw=new StreamWriter( "e: \ltemp\. txt", false, System. Text. Encoding. UTF8);sw. Write("aaaaaaaaaaaaaaaaaaa");sw.close();

●向网络写入文本

string str="aaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte [] myByte=System.Text.Encoding.UTF8.GetBytes(str);
NetworkStream netStream=new NetworkStream (mysock):
netStream. Write(myByte, 0, myByte.Length);

●从文件读取文本

StreamReader sr =null;
sr=new streamReader("e: \\temp laa. txt", System. Text. Encoding. UTF8);
string mystr=sr. ReadToEnd();
sr. close();

●从网络读取文本

 string str="aaaaaaaaaaaaa";byte [] myByte=System.Text.Encoding.UTF8.GetBytes(str);Networkstream netStream=new NetworkStream(mysock);netStream.Read(myByte,myByte.Length);

三。文件流

文件流用于读写文件

文件流主要用于读写非文本的文件。文件类型可以是各种各样的,无论是文本文件, 还是图片文件、压缩文件、可执行文件等等都可以用文件流实现读写功能。下例演示如何用文件流读写数据。

●将网络流数据写入文件
下列代码演示如何从网络流中读取数据并将内容写入文件,其中path代表文件路径, stream代表已经连接并且存在数据传输的网络流。

 Filestream filestream=new FileStream(path,FileMode.OpenorCreate, FileAccess.Write);int readNumber=0;byte[] bye=new byte[8];while( (readNumber=stream.Read(bye, 0, 8))>0){filestream. Write(bye,o, readNumber);//刷新缓存filestream. Flush();}fileStream.Close();

●读文件并写入网络流
下列代码演示如何用文件流从文件读取数据,并将数据发送到网络流,其中path代表文件路径, stream代表已经连接并且存在数据传输的网络流,

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

C#网络编程之基础语法 网络流(NetworkStream) 文本流(Stream) 文件流(Filestream )相关推荐

  1. .net 流(Stream) - 文件流、内存流、网络流

    一.文件流 FileStream FileStream流继承与Stream类,一个FileStream类的实例实际上代表一个文件流,使用FileStream类可以对文件系统上是文件进行读取.写入.打开 ...

  2. python编程语法大全-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...

  3. python编程语法-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...

  4. python编程if语法-Python编程入门基础语法详解经典

    原标题:Python编程入门基础语法详解经典 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_number = ...

  5. python编程语法-Python编程入门——基础语法详解(经典)

    今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...

  6. 风变编程python助教_花30天时间,学完了风变编程Python基础语法课

    原标题:花30天时间,学完了风变编程Python基础语法课 20节实打实的课程,1个月时间,我终于学完了风变编程的Python基础语法课.刚开始学的时候,就有人问我感受怎么样,当时本着未知全貌不予置评 ...

  7. 高等学校计算机科学与技术教材:tcp/ip网络编程技术基础,TCP/IP网络编程技术基础...

    TCP/IP网络编程技术基础 语音 编辑 锁定 讨论 上传视频 <TCP/IP网络编程技术基础>是2012年北京交通大学出版社出版的图书,作者是王雷. 书    名 TCP/IP网络编程技 ...

  8. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  9. python基础编程语法-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...

  10. python基础编程语法-Python编程入门——基础语法详解(经典)

    今天小编给大家带来Python编程入门--基础语法详解.温馨提示: 亮点在最后! 在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Python开发的,如果你正在学习P ...

最新文章

  1. 梵高:每个人心中都有一团火,而路过的人只看到了烟
  2. Python计算机视觉:安装
  3. SSM+KindEditor实现富文本编辑器图片上传
  4. X Window、GNOME和KDE之间的关系
  5. W3School-CSS 表格实例
  6. Nginx - 日志格式及输出
  7. WinDBg定位asp.net mvc项目异常崩溃源码位置
  8. 快速搭建Python+Selenium+Sublime 自动化测试环境方法
  9. (王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树
  10. Leetcode811.Subdomain Visit Count子域名访问计数
  11. 下载带vba的wps
  12. 如何用Matlab求极限
  13. 共模和差模信号及其噪音抑制
  14. ‘keytool‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件
  15. 删除MAC应用程序的4种办法
  16. 网络编程 2 套接字socket
  17. 互联网产品经理必读书籍
  18. linux启动/停止/重启MySQL的命令
  19. Maven配置阿里云中央仓库
  20. 转:任正非寄语2010:开放、妥协与灰度

热门文章

  1. 那些年我准备的前端面试题
  2. 线性判别分析(Linear Discriminant Analysis,LDA)
  3. excel计算数据的差和的公式和方法、相关系数、绝对误差
  4. 2021程序员的出路在哪里
  5. Word小技巧:图片批量裁剪与大小调整
  6. 算法学习-求平方根函数
  7. DDR3内存频率标识对应
  8. 交换机端口详细配置Trunk
  9. oracle imp命令参数,oracle exp和imp命令参数详解
  10. Excel公式中的LookUp三剑客(可以取代Vlookup的神秘公式)