版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Server#coding:utf8importthreadingfromsocketimport*fromtimeimportctime,sleep#fromos.pathimportsplitHOST=PORT=32123BUFSIZE=1024ADDR=(HOST,PORT)chatSerSock=socket()chatSerSock.bind(ADDR)chatSerSock.listen(5)clients=None:,defDeal(sck,username,room):adata=sck.recv(BUFSIZE).decode()ifadata!=success:print(
2、clienthaveaproblem)sck.close()foriinclientsroom.keys():ifi!=username:fmtdatai=01loginroom2.format(ctime(),username,room)try:clientsroomi.send(fmtdatai.encode()except(Exception)ase:print(msgsendwrong,e)whileTrue:try:while1:data=sck.recv(BUFSIZE).decode()iflen(data.strip()0:breakelse:print(cannotsendn
3、ull)except:print(loseaconnect)sck.close()breakfmtdatau=01say:n2.format(ctime(),username,data)print(fmtdatau)try:foriinclientsroom.keys():ifi!=username:ifdata!=quit:fmtdatai=01say:n2.format(ctime(),username,data)#print(fmtdatai)try:clientsroomi.send(fmtdatai.encode()except(Exception)ase:print(roomsen
4、dwrong,e)else:fmtdatao=user0in1isoutat2.format(username,room,ctime()#print(fmtdatao)clientsroomi.send(fmtdatao.encode()ifdata=quit:delclientsroomusernamesck.send(data.encode()sck.close()breakexcept:passwhile1:/print(waitingforconnection.,)try:chatCliSock,addr=chatSerSock.accept()except:print(accepte
5、xc)sleep(1)continueprint(.connectedfrom:,addr)try:data=chatCliSock.recv(BUFSIZE).decode()except:print(inrecvmain)username,room=data.split()#print(username,u,room,r,data)ifroomnotinclients.keys():#print(room)clientsroom=#print(inroom,clients.keys()try:ifusernameinclientsroom.keys():print(inusr)chatCl
6、iSock.send(reuse.encode()chatCliSock.close()else:#print(insucess)chatCliSock.send(success.encode()clientsroomusername=chatCliSockt=threading.Thread(target=Deal,args=(chatCliSock,username,room)t.start()except:print(theclientexitwithanexception)chatSerSock.close()client#coding:utf8fromsocketimport*fro
7、mtimeimportctime,sleepimportthreadingimportsysHOST=localhostPORT=32123BUFSIZE=1024ADDR=(HOST,PORT)threads=defSend(sck,test):sck.send(success.encode()whileTrue:try:while1:data=input()iflen(data)0:breaksck.send(data.encode()ifdata=quit:breakexcept:passdefRecieve(sck,test):whileTrue:#print(inrecv)sleep
8、(1)try:data=sck.recv(BUFSIZE).decode()except:print(inrecvwrongc)passifdata=quit:sck.close()breakelse:print(n,data,n)username=input(inputusername:)room=input(inputroom:)chatCliSock=socket()chatCliSock.connect(ADDR)fmtusr=01.format(username,room)chatCliSock.send(fmtusr.encode()print(fmtusr)data=chatCliSock.recv(BUFSIZE).decode()try:ifdata=reuse:print(user%shavebeenloginedroom%s%(username,room)input()/sys.exit(1)elifdata=success:print(user%sloginroom%ssuccess%(username,room)t=threading.Thread(target=Send,args=(chatCliSock,None)threads.append(t)t=threading.Thread(targ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學折紙社團活動方案
- 二次供水清洗消毒合同
- 土石方開挖、爆破專項施工方案
- 年度個人工作總結(jié)
- 2023年懷化中方縣事業(yè)單位招聘(含醫(yī)療崗位)考試真題
- 2023年桂林資源縣招聘縣級公立醫(yī)院聘用筆試真題
- 中小學教師教學述評制度
- 2024年社會主義核心價值觀活動方案
- 幼兒園一崗雙責工作制度
- 游泳池安全管理規(guī)章制度
- PDT集群無線技術(shù)規(guī)范培訓計劃
- (高清版)TDT 1047-2016 土地整治重大項目實施方案編制規(guī)程
- 2023年10月自考00155中級財務(wù)會計試題及答案含評分標準
- 自然教育行業(yè)的行業(yè)分析
- 探析機械電子工程行業(yè)現(xiàn)狀分析及未來發(fā)展趨勢
- 機電一體化生涯發(fā)展報告
- 科學精神青少年的科學思維認知
- 2024年浙江高壓電工證考試題庫app高壓電工復(fù)審模擬考試題庫(全國通用)
- 豐田汽車組織架構(gòu)圖課件
- 老年人中醫(yī)藥養(yǎng)生健康知識講座
- 物業(yè)保盤行動策劃方案
評論
0/150
提交評論