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)啟動 print(’服務(wù)器已啟動’) #通過循環(huán)接收客戶端的連接,并做出相應(yīng)的處理(提供服務(wù)) while True:#接收客戶端的連接 accpet是一個阻塞的方法 如果沒有客戶端連接到服務(wù)器#這個方法就會阻塞代碼不會向下執(zhí)行(返回的對象是一個元祖)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. chat.asp聊天程序的編寫方法2. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法3. XML入門的常見問題(二)4. Jsp中request的3個基礎(chǔ)實(shí)踐5. JavaScrip簡單數(shù)據(jù)類型隱式轉(zhuǎn)換的實(shí)現(xiàn)6. 得到XML文檔大小的方法7. ASP.NET Core實(shí)現(xiàn)中間件的幾種方式8. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能9. CSS3實(shí)例分享之多重背景的實(shí)現(xiàn)(Multiple backgrounds)10. 如何在jsp界面中插入圖片
