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. idea設(shè)置提示不區(qū)分大小寫(xiě)的方法2. 使用AJAX(包含正則表達(dá)式)驗(yàn)證用戶登錄的步驟3. Java PreparedStatement用法詳解4. Java實(shí)現(xiàn)的迷宮游戲5. django queryset相加和篩選教程6. IDEA 2020.1.2 安裝教程附破解教程詳解7. Java利用TCP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器通信(附通信源碼)8. JS圖片懶加載庫(kù)VueLazyLoad詳解9. 利用ajax+php實(shí)現(xiàn)商品價(jià)格計(jì)算10. Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝

網(wǎng)公網(wǎng)安備