Python使用Socket實(shí)現(xiàn)簡(jiǎn)單聊天程序
b2b模式的聊天工具
服務(wù)端:
# 鏈接 while True: print('等待連接...') sock,adr = server_socket.accept() while True: try: # 接受數(shù)據(jù) data = sock.recv(1024) print(adr[0] + '發(fā)來(lái)消息:', data.decode()) # 發(fā)送數(shù)據(jù) send_msg = input("請(qǐng)輸入發(fā)送內(nèi)容>>").strip() sock.send(send_msg.encode('utf-8')) except ConnectionResetError as e: print('%s斷開(kāi)連接!' %adr[0]) break # 關(guān)閉本次連接 sock.close() # 關(guān)閉socket server_socket.close()
客戶端:
import socket # 設(shè)置服務(wù)器ip和端口號(hào) host_ip = '192.168.31.207' port = 8896 client_socket = socket.socket() client_socket.connect((host_ip,port)) while True: send_msg = input('請(qǐng)輸入內(nèi)容>>').strip() if send_msg == '': continue client_socket.send(send_msg.encode()) recv_data = client_socket.recv(1024) print(host_ip+"回復(fù):"+recv_data.decode()) client_socket.close()
目前只支持客戶端發(fā)一句,服務(wù)端發(fā)一句這種模式。
超過(guò)一句內(nèi)容后,發(fā)出去的內(nèi)容對(duì)方接收不到
結(jié)果:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python自定義進(jìn)程池實(shí)例分析【生產(chǎn)者、消費(fèi)者模型問(wèn)題】
這篇文章主要介紹了Python自定義進(jìn)程池,結(jié)合實(shí)例分析了Python使用自定義進(jìn)程池實(shí)現(xiàn)的生產(chǎn)者、消費(fèi)者模型問(wèn)題,需要的朋友可以參考下2016-09-09Python爬蟲(chóng)基礎(chǔ)之selenium庫(kù)的用法總結(jié)
今天帶大家來(lái)學(xué)習(xí)selenium庫(kù)的使用方法及相關(guān)知識(shí)總結(jié),文中非常詳細(xì)的介紹了selenium庫(kù),對(duì)正在學(xué)習(xí)python的小伙伴很有幫助,需要的朋友可以參考下2021-05-05Python開(kāi)發(fā)入門(mén)——迭代的基本使用
這篇文章主要介紹了Python 迭代的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python開(kāi)發(fā),感興趣的朋友可以了解下2020-09-09python使用隱式循環(huán)快速求和的實(shí)現(xiàn)示例
這篇文章主要介紹了python使用隱式循環(huán)快速求和的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python通過(guò)90行代碼搭建一個(gè)音樂(lè)搜索工具
這篇文章主要介紹了Python通過(guò)90行代碼搭建一個(gè)音樂(lè)搜索工具,需要的朋友可以參考下2015-07-07