background image

数 据 传 输 的 基 类 , 分 别 是 连 接 类 和 连 接 管 理 类 , 这 两 个 基 类 分 别 用 了

Microsoft 的 Socket 类和 TcpListener

 

类。

  

(1)Socket

 

  

Socket 类为网络通信提供了一套丰富的方法和属性。Socket 类允许您使用

ProtocolType 枚举中所列出的任何一种协议执行异步和同步数据传输。Socket

类遵循异步方法的

.NET Framework 命名模式;例如,同步 Receive 方法对

应于异步

BeginReceive 和 EndReceive

 

方法。

  

(2)TcpListener

 

  

TcpListener 类提供一些简单方法,用于在阻塞同步模式下侦听和接受传

入 连 接 请 求 。 使 用

TcpClient 或 Socket 来 连 接 TcpListener , 使 用

IPEndPoint、本地 IP 地址及端口号或者仅使用端口号,来创建 TcpListener。可

以将本地

IP 地址指定为 Any,将本地端口号指定为 0(希望基础服务提供程序

分配这些值

)。如果选择这样做,使用 LocalEndpoint

 

来标识已指定的信息。

  

Start 方法用来开始侦听传入的连接请求。Start 将对传入连接进行排队,

直 至您 调用

Stop 方法或它已经完成 MaxConnections 排队为止。可使用

AcceptSocket 或 AcceptTcpClient 从传入连接请求队列提取连接。这两种方

法将阻塞。如果要避免阻塞,可首先使用

Pending 方法来确定队列中是否有可

 

用的连接请求。

  调用

Stop 方法来关闭 TcpListener。Stop 方法不会关闭任何已接受的连接

 

需要用户负责分别关闭这些连接。

  

2. 

 

程序所用链表的代码实现

  在程序中我们经常会用到链表这样一种数据结构。很幸运

Microsoft 为用户

提供了很好的数组类

ArrayLIst

 

,用起来很方便,如同在用一个链表。

  

ArrayList 类提供在大多数 Collections 类中提供但不在 Array 类中提供的

 

一些功能。例如:

  

Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的。如果

更改了

ArrayList.Capacity 属性的值,则自动进行内存重新分配和元素复制 。

ArrayList 提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一

次获取或设置一个元素的值。

ArrayList 提供将只读和固定大小包装返回到集合

的方法。而

Array 不提供。另一方面,Array 提供 ArrayList 所不具有的某些灵