python實(shí)現(xiàn)簡(jiǎn)單聊天功能
python的功能確實(shí)強(qiáng)大,幾行代碼就能實(shí)現(xiàn)聊天功能 ,供大家參考,具體內(nèi)容如下
服務(wù)端:
from socket import socketdef main(): #創(chuàng)建套接字對(duì)象并指定使用哪種傳輸服務(wù) socket()括號(hào)不傳遞參數(shù)默認(rèn)是tcpipv4 server = socket() #綁定ip地址和端口(這樣可以區(qū)分不同的服務(wù)) 端口可以自己指定建議使用1024以后的端口 server.bind((’10.7.152.123’,5650)) # 開(kāi)啟監(jiān)聽(tīng) ----監(jiān)聽(tīng)客戶端連接到服務(wù)器 server.listen(512) #檢查服務(wù)器是否已經(jīng)啟動(dòng) print(’服務(wù)器已啟動(dòng)’) #通過(guò)循環(huán)接收客戶端的連接,并做出相應(yīng)的處理(提供服務(wù)) while True:#接收客戶端的連接 accpet是一個(gè)阻塞的方法 如果沒(méi)有客戶端連接到服務(wù)器#這個(gè)方法就會(huì)阻塞代碼不會(huì)向下執(zhí)行(返回的對(duì)象是一個(gè)元祖)client , addr = server.accept()print(str(addr) + ’已經(jīng)成功連接到服務(wù)器.’)while True: #decode對(duì)接收到的消息進(jìn)行解碼 print(client.recv(1024).decode(’utf-8’)) data = input(’服務(wù)器:’) #判斷客戶端發(fā)來(lái)的消息如果出現(xiàn)bey或者拜拜跳出循環(huán) if data == ’bey’ or data == ’拜拜’:break #encode對(duì)發(fā)送的消息進(jìn)行轉(zhuǎn)碼 client.send(data.encode(’utf-8’))#斷開(kāi)連接client.close()if __name__ == ’__main__’: main()
客戶端:
from socket import socketdef main(): #創(chuàng)建套接字對(duì)象 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é)果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. XML入門(mén)的常見(jiàn)問(wèn)題(三)2. HTTP協(xié)議常用的請(qǐng)求頭和響應(yīng)頭響應(yīng)詳解說(shuō)明(學(xué)習(xí))3. ASP將數(shù)字轉(zhuǎn)中文數(shù)字(大寫(xiě)金額)的函數(shù)4. XML在語(yǔ)音合成中的應(yīng)用5. .NET Framework各版本(.NET2.0 3.0 3.5 4.0)區(qū)別6. jscript與vbscript 操作XML元素屬性的代碼7. 不要在HTML中濫用div8. php使用正則驗(yàn)證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)9. ASP基礎(chǔ)入門(mén)第四篇(腳本變量、函數(shù)、過(guò)程和條件語(yǔ)句)10. HTML5實(shí)戰(zhàn)與剖析之觸摸事件(touchstart、touchmove和touchend)
