python123监考_python--DenyHttp项目(2)--ACM监考服务器端

#coding:utf-8

'''ServerGui.py

设置比赛开始时间

设置比赛结束时间

若时间无误启动监听服务'''

importtimeimportreimporttkinter as tkfrom tkinter importsimpledialogfrom DenyServer import *

importthreadingclassServerGui():def __init__(self):'''开始时间,结束时间'''self.getEndTime= ''self.getStartTime= ''

'''定义窗口布局'''self.root=tk.Tk()

self.serverMark= 1self.root.title('404监考服务器')

self.curWidth= 450self.curHeight= 85scnWidth,scnHeight=self.root.maxsize()

tmpcnf= '%dx%d+%d+%d'%(self.curWidth,self.curHeight,

(scnWidth-self.curWidth)/2,(scnHeight-self.curHeight)/2)

self.root.geometry(tmpcnf)

self.root.resizable(False, False)'''比赛开始时间Button'''self.setStartTimeButton=tk.Button(self.root,

text='设置比赛开始时间:',

height=1,width=15,padx=8,pady=1,

font=("Arial",14),

command=self.setStartTime)

self.startTimeLable= tk.Label(self.root,text='00:00:00',font=("Arial",20))

self.setStartTimeButton.grid(row=0,column=0,stick=tk.E)

self.startTimeLable.grid(row=0,column=1,stick=tk.W)'''比赛结束时间Button'''self.setTimeButton=tk.Button(self.root,

text='设置比赛结束时间:',

height=1,width=15,padx=8,pady=1,

font=("Arial",14),

command=self.setEndTime)

self.timeLable= tk.Label(self.root,text='00:00:00',font=("Arial",20))

self.setTimeButton.grid(row=1,column=0,stick=tk.E)

self.timeLable.grid(row=1,column=1,stick=tk.W)'''启动服务器'''

ifself.serverMark:

self.threadStartServerServices= threading.Thread(target=self.checkTimeAndLocaltion)

self.threadStartServerServices.start()

self.root.mainloop()'''检查时间是否设置'''

defcheckTimeAndLocaltion(self):whileTrue:if self.getEndTime != '' and self.getStartTime != '':

self.serverStart()breaktime.sleep(1)'''设置比赛开始时间'''

defsetStartTime(self):

ch= simpledialog.askstring("比赛开始时间:", "时间格式例如:2017-07-12 00:00:15")

pattern=re.compile(r'(\d{4}-\d{2}-\d{2})((\s\d{2}:\d{2}:\d{2}|))')try:

s=pattern.search(ch).group()

self.getStartTime=s

self.startTimeLable.configure(text=s)exceptAttributeError:

tk.messagebox.showerror('警告', "格式错误")

self.setStartTime()exceptTypeError:pass

'''设置比赛结束时间'''

defsetEndTime(self):

ch= simpledialog.askstring("比赛结束时间:", "时间格式例如:2017-07-12 00:00:15")

pattern=re.compile(r'(\d{4}-\d{2}-\d{2})((\s\d{2}:\d{2}:\d{2}|))')try:

s=pattern.search(ch).group()

self.getEndTime=s

self.timeLable.configure(text=s)exceptAttributeError:

tk.messagebox.showerror('警告', "格式错误")

self.setEndTime()exceptTypeError:pass

'''启动服务器端'''

defserverStart(self):

self.serverMark=0'''模块接口'''server=ThreadTCPServer(initServerIp(), TCPHandler)

TCPHandler.startTime= datetime.datetime.strptime(self.getStartTime, "%Y-%m-%d %H:%M:%S")

TCPHandler.endTime= datetime.datetime.strptime(self.getEndTime, "%Y-%m-%d %H:%M:%S")

server_thread= threading.Thread(target=server.serve_forever())

server_thread.daemon=True

server_thread.start()

server_thread.join()

server.shutdown()if __name__ == '__main__':

servergui= ServerGui()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值