龙源期刊网 http://www.qikan.com.cn
基于Socket异步通信的实现
作者:胡峰 杨昱昺
来源:《中小企业管理与科技·下旬刊》2011年第12期
摘要:在基于Socket的word/excel试题自动评分系统的传输模块中,为了保证学生考试数据在网络传输中的安全性、完整性以及传输效率,采用Socket异步通信和多线程技术。实验证明本数据传输模块可以有效地保证传输数据的安全性和完整性。 关键词:C# Socket 异步通信 多线程 1 概述
为了适应信息社会的需求,目前,大学非计算机专业学生都要求在大学期间拿到省二级办公软件高级应用证书。虽然目前国内已经有了word/excel试题自动评分系统,如全国计算机等级、省二级办公软件高级应用等考试系统,但这些软件只限于局域网范围内使用,如一个机房内参加考试或练习,这就给学生平时练习或更大范围内的考试带来不便。为了克服已有软件的不足,本系统采用基于Socket通信实现,它类似于QQ软件的服务器/客户端方式,这样学生只要下载该系统的客户端,就可以通过远程的方式进行练习与测试。从而避免目前已有的考试或练习软件的不足,提高效率。
本系统使用面向对象C#语言编程,以Socket和多线程技术为核心进行系统设计,很好的满足学生办公软件高级应用试题的练习与测试。 2 系统设计
2.1 总体分析 主要设计思路:首先客户端连接服务器端,客户端必须根据服务器的IP地址+服务器预设端口连接到服务器端。接着客户端将学生上交的考题文件进行压缩、加密,然后发送至服务器端。服务器端将采用连续监听端口的方式,实现对客户端的监听。一旦客户端有请求到达,服务器端将自动产生一个线程,该线程将响应请求,接受客户端发送的文件,然后进行解密、解压缩等操作,成功获得从客户端发送来的文件,当然这其中还应考虑断点续传问题。
客户端也要采用多线程实现,编程的基本思路:当发送文件进行分块后,采用多线程传输。客户端将对已分割的文件块进行单独校验,能保证文件的完整性,同时还提供磁盘缓存功能。文件传输模块流程如图1所示。
2.2 服务器端程序设计 服务器端程序主要功能如下:
①获得线程。②异步接收数据。③获取估计剩余时间。④获取已完成数据长度。⑤开始传输。
基于Socket异步通信的实现
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)