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. nestjs實(shí)現(xiàn)圖形校驗(yàn)和單點(diǎn)登錄的示例代碼2. html小技巧之td,div標(biāo)簽里內(nèi)容不換行3. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式4. laravel ajax curd 搜索登錄判斷功能的實(shí)現(xiàn)5. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊6. Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))7. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法8. python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能9. Echarts通過(guò)dataset數(shù)據(jù)集實(shí)現(xiàn)創(chuàng)建單軸散點(diǎn)圖10. css進(jìn)階學(xué)習(xí) 選擇符
