5.1.4考场广播的设计与实现在考场上,监考老师需要向考生说明各种注意事项和考卷中出现的问题,在考试将要结束的时候需要提醒考生填写答题纸。在该考试系统中添加了考试广播功能,监考老师可以在线向所有考生发送广播信息。读取考场信息Client_list图25实现方法:privatevoidbutton4_Click(objectsender,System.EventArgse){this.button4.Enabled=false;stringstr=this.textBox12.Text;for(inti=0;ithis.client_list.Count;i++)//遍历客户列表{byte[]msg=System.Text.UnicodeEncoding.Unicode.GetBytes(str);string[]tokens=((Client)client_list[i]).Host.ToString().Split(newChar[]{':'});IPEndPointip=newIPEndPoint(IPAddress.Parse(tokens[0]),1035);this.newsock.SendTo(msg,ip);//向客户发送广播信息}this.button4.Enabled=true;}5.2Client端的详细设计与实现Client端是考生直接面对的考试界面,考生通过Client端登陆服务器,浏览考题,在线做题,并且保证考生的答案可以准确无误的传输到Server端。因此,在整个Client端的设计中要保证数据传输的可靠性和用户界面的直观性,友好性。以下主要介绍了实现客户端的主要技术。Server端考生机监考老师考生机考生机考场广播5.2.1服务器IP和端口号的配制在当前的计算机网络中TCP/IP协议得到广泛的使用,各高校的局域网一般都支持TCP/IP协议,在以TCP/IP协议为基础的网络中IP地址是网络中的唯一标识。端口号又是专门对应于某一应用的标识。因此,在考生登陆考试系统前必须保证IP和端口号的正确性。一般来讲服务器的IP和端口号是不变的,如果在每次考试时考生都要重新写入那会给考生带来麻烦,而且不是每一个考生都懂得这些考前的准备工作,因此,在该系统中把这些配制信息保存在一个文件中,当考生使用客户端登陆考试系统时自动读取配制文件中的信息。简化了考试不必要的过程。以下是该功能的实现:privatevoidForm1_Load(objectsender,System.EventArgse){this.ClientSize=newSystem.Drawing.Size(712,180);stringpath=@..\..\data\serverset.txt;//路径设置if(!File.Exists(path)){using(StreamWritersw=File.CreateText(path))//创建文件}else{using(StreamReadersr=File.OpenText(path)){if((this.textBox3.Text=sr.ReadLine())!=null){IPAddr_Srv=this.textBox3.Text.Trim();//读取IP}if((this.textBox4.Text=sr.ReadLine())!=null){Port_Srv=System.Convert.ToInt32(this.textBox4.Text.Trim());//读取端口号}}//endusing}//endelse}5.2.2用户考试界面的设计与实现考试界面的设计是该系统的一个难点,在设计中必须考虑直观性和友好性这两个要素。该系统通过模拟传统的考试方式来实现独特的用户界面。考生在登陆成功后进入考试状态,在考试状态下考生可以进行浏览考题,在线答题,随时保存答案,在线询问,提交考卷等功能。图26功能图:图27考试界面答案提交在线询问保存答案在线答题浏览考题考场广播显示考场信息