任务放到后台去处理;用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度;程序的运行速度可能加快;在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。
在这种情况下我们可以释放一些珍贵的资源如内存占用等等。
在本质上和结构来说,一般来说,你可以quot手动quot为长时间运行的任务创建一个新的线程,另外对于短时间运行的任务尤其是经常需要开始的那些,进程池是一个非常好的选择。
进程池可以同时运行多个任务,还可以使用框架类。
对于资源紧缺需要进行同步的情况来说,它可以限制某一时刻只允许一个线程访问资源。
这种情况可以视为给线程实现了锁机制。
2.2.5TCP/IP 协议、UDP 协议 网际协议 IP 是 TCP/IP 的心脏,也是网络层中最重要的协议。
IP 层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP 或UDP 层;相反,IP 层也把从 TCP 或 UDP 层接收来的数据包传送到更低层。
IP 数据包是不可靠的,因为 IP 并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。
IP 数据包中含有发送它的主机的地址(源地址) 。
和接收它的主机的地址(目的地址) 如果 IP 数据包中有已经封好的 TCP 数据包,那么 IP 将把它们向上传送到 TCP 层。
TCP 将包排序并进行错误检查,同时实现虚电路间的连接。
TCP 数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。
UDP 与 TCP 位于同一层,但对于数据包的顺序错误或重发。
因此,UDP 不被应用于那些使用虚电路的面向连接的服务,UDP 主要用于那些面向查询 ---应答的服务. TCP 和 UDP 服务通常有一个客户/服务器的关系。
两个系统间的多重连接是这样相互确认并协调一致的,TCP 或 UDP 连接唯一地使用每个信息中的如下四项进行确认: 源 IP 地址 发送包的 IP 地址。
目的 IP 地址 接收包的 IP 地址。
源端口源系统上的连接的端口。
目的端口 目的系统上的连接的端口。
端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。
一个端口对应一个 16 比特的数。
服务进程通常使用一个固定的端口,例如, SMTP 使用 25。
这些端口号是“广为人知”的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。
2.2.6Client/Server 结构 Client/Server 结构(C/S 结构)是大家熟知的客户机和服务器结构。
通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是 Client/Server 形式的两层结构。
C/S 结构软件分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。
由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。
C/S 结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快。
缺点主要有以下几个: 只适用于局域网。
而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。
这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
第三章 系统分析与设计3.1 系统分析3.1.1 系统需求 聊天交流是目前互联网提供的主要内容。
聊天系统有多种实现方式,类似 ICQ 属于一种点对点的聊天系统;还有一种是基于 Socket 的集中式聊天系统,这种聊天系统需要登录统一的聊天服.