当前位置: 网学 > 编程文档 > VB > 正文

机考系统中的交/发卷设计

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
f

End Sub

3.发卷时服务器发送文件正文

Private Sub wisServer_SendComplete(Index As Integer)

Dim DataSize As Integer

Dim outFileData() As Byte

If Conns(Index).FinishSize < Conns(Index).FileSize Then ’此前文件已打开

DoEvents

If Conns(Index).FileSize - Loc(Conns(Index).FileNum) < MAXSENDSIZE Then

’MAXSENDSIZE是每次发送的最大字节数

DataSize = Conns(Index).FileSize - Loc(Conns(Index).FileNum)

Else

DataSize = MAXSENDSIZE

End If

ReDim outFileData(0 To DataSize - 1)

Get #Conns(Index).FileNum, , outFileData

wisServer(Index).SendData outFileData

Conns(Index).FinishSize = Conns(Index).FinishSize + DataSize

Else

Close (Conns(Index).FileNum)

End If

End Sub

说明:客户端程序的交卷模块代码与此类似。

4. 客户端接收数据代码

Private Sub wisClient_DataArrival(ByVal bytesTotal As Long)

Dim inData As String

’用于接收辅助信息

Dim inFileData() As Byte

’用于接收文件正文

Dim GetRarFile As String, unRarTarget As String ’文件路径

If Not Recvd Then ’如果是首次接收

wisClient.GetData inData, vbString

’接收文件的大小信息

FileSize = CDbl(Val(inData))

Recvd = True

Else ’开始接收文件正文

ReDim inFileData(0 To bytesTotal - 1)

wisClient.GetData inFileData, vbArray + vbByte

Put FileNum, , inFileData

’此前文件已建立并打开

RecvdSize = RecvdSize + bytesTotal

If RecvdSize = FileSize Then

’接收完毕

Close (FileNum)

wisClient.Close

’由接收方关闭连接而非发送方,否则会丢失数据

GetRarFile = GhDir & “\” & txtGh & “.rar”

’GhDir是考试目录,txtGh存放考号

unRarTarget = GhDir & “\”

Pid = Shell(App.path & “\rar x -inul” & GetRarFile & unRarTarget) ’解压缩

hProcess=OpenProcess(PROCESS_

QUERY_INFORMATION, 0, Pid)

’调用WinAPI

Do ’等待解压缩结束

Call GetExitCodeProcess(hProcess, ExitCode)

DoEvents

Loop While ExitCode = STILL_ALIVE

Call CloseHandle(hProcess)

Kill GhDir & “\” & txtGh & “.rar”

MsgBox “发卷完毕”

Shell “C:\Windows\explorer.exe/n,

/e,” & GhDir, vbMaximizedFocus

Unload Me

End If

End If

End Sub

说明:服务器程序中接收交卷的代码与此相似。

以上代码已在Windows 2000 Server、Windows XP、Windows 98平台下成功运行,并在实践中获得成功的应用。由于篇幅所限,在此没给出完整代码。

小 结

在本系统的编程中有两点值得注意: 一个是压缩-发送-解压缩的思路,另一个是用自定义数据类型数组保存考生(连接)的信息。当然,本系统只是解决了服务器与考生用机之间的安全问题,至于考生与考生之间通过文件夹共享互通答案,也许只有采取暂时的物理隔离手段才是最有效的解决办法。

  • 上一篇资讯: 给电脑装个监视器
  • 下一篇资讯: 如何映射/中断网络磁盘
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号