python實(shí)現(xiàn)簡單聊天功能
python的功能確實(shí)強(qiáng)大,幾行代碼就能實(shí)現(xiàn)聊天功能 ,供大家參考,具體內(nèi)容如下
服務(wù)端:
from socket import socketdef main(): #創(chuàng)建套接字對象并指定使用哪種傳輸服務(wù) socket()括號不傳遞參數(shù)默認(rèn)是tcpipv4 server = socket() #綁定ip地址和端口(這樣可以區(qū)分不同的服務(wù)) 端口可以自己指定建議使用1024以后的端口 server.bind((’10.7.152.123’,5650)) # 開啟監(jiān)聽 ----監(jiān)聽客戶端連接到服務(wù)器 server.listen(512) #檢查服務(wù)器是否已經(jīng)啟動(dòng) print(’服務(wù)器已啟動(dòng)’) #通過循環(huán)接收客戶端的連接,并做出相應(yīng)的處理(提供服務(wù)) while True:#接收客戶端的連接 accpet是一個(gè)阻塞的方法 如果沒有客戶端連接到服務(wù)器#這個(gè)方法就會(huì)阻塞代碼不會(huì)向下執(zhí)行(返回的對象是一個(gè)元祖)client , addr = server.accept()print(str(addr) + ’已經(jīng)成功連接到服務(wù)器.’)while True: #decode對接收到的消息進(jìn)行解碼 print(client.recv(1024).decode(’utf-8’)) data = input(’服務(wù)器:’) #判斷客戶端發(fā)來的消息如果出現(xiàn)bey或者拜拜跳出循環(huán) if data == ’bey’ or data == ’拜拜’:break #encode對發(fā)送的消息進(jìn)行轉(zhuǎn)碼 client.send(data.encode(’utf-8’))#斷開連接client.close()if __name__ == ’__main__’: main()
客戶端:
from socket import socketdef main(): #創(chuàng)建套接字對象 client = socket() #連接服務(wù)器 client.connect((’10.7.152.123’,5650)) while True:data = input(’客戶端:’)#向服務(wù)端發(fā)送消息client.send(data.encode(’utf-8’))if data == ’Bey’ or data == ’拜拜’: breakprint(client.recv(1024).decode(’utf-8’)) client.colse()if __name__ == ’__main__’: main()
運(yùn)行結(jié)果:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 基于javaweb+jsp實(shí)現(xiàn)學(xué)生宿舍管理系統(tǒng)2. 如何封裝一個(gè)Ajax函數(shù)3. 多級聯(lián)動(dòng)下拉選擇框,動(dòng)態(tài)獲取下一級4. ASP.NET MVC實(shí)現(xiàn)樹形導(dǎo)航菜單5. Ajax常用封裝庫——Axios的使用6. jsp網(wǎng)頁實(shí)現(xiàn)貪吃蛇小游戲7. jsp+servlet簡單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))8. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera9. Python數(shù)據(jù)分析JupyterNotebook3魔法命令詳解及示例10. 氣象 XML 數(shù)據(jù)源應(yīng)用程序開發(fā)指南-操作檢查列表
