Python使用TCP實現簡單對話
注意:需要先啟動伺服器,在啟動客戶端
TCP server
import socket
from os.path import commonprefix
words = {
'how are you?':"Fine thank you",
'how old are you?':'38',
'what is your name?':'Ji Ruan',
"what's your name?":"Ji Ruan",
'where do you work?':'Nan Yang',
'bey':'Bye'
}
HOST = ''
PORT = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#繫結socket
s.bind((HOST,PORT))
#開始監聽一個客戶端連線
s.listen(1)
print("Linsten on port :" ,PORT)
#阻塞等待客戶端連線
conn,addr = s.accept()
print("Connected by",addr)
#開始聊天
while True:
data = conn.recv(512).decode()#解碼
if not data:
break
print("Received message:",data)
# 儘量猜測對方要表達的真正意思
m = 0
key = ''
for k in words.keys():
#刪除多餘的空白字元
data = ' '.join(data.split())
# 與某個 鍵接近,就直接返回
if len(commonprefix([k,data])) > len(k)* 0.7:
key = k
break
# 使用選擇發,選擇一個重合度交的鍵
length = len(set(data.split()) & set(k.split()))
if length > m:
m = length
key = k
#選擇適合資訊進行回覆
conn.sendall(words.get(key, 'Sorrey.').encode())
conn.close()
s.close()
TCP cilent
import socket
import sys
#服務端主機IP地址,和埠號
HOST = '127.0.0.1'
PORT = 50007
s =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:#異常處理,當伺服器未開啟或者IP錯誤提示
#連線伺服器
s.connect((HOST, PORT))
except Exception as e:
print("Server not found or not open")
print(e)
sys.exit()
while True:
c = input("Input the content you want to send:")
#傳送資料
s.sendall(c.encode())
#從伺服器接收資料
data = s.recv(512)
data = data.decode()
print("Received:" ,data)
if c.lower() == 'bey':
break
#關閉連線
s.close()
執行效果:
相關文章
- TCP和UDP實現簡單一對一通訊TCPUDP
- tcp 實現簡單http 問題TCPHTTP
- Python實現簡單的excel對比工具PythonExcel
- python linkedhashset 簡單實現,使用OrderedDictPython
- python 實現 TCP 伺服器最簡流程PythonTCP伺服器
- python 實現 TCP、UDP 客戶端最簡流程PythonTCPUDP客戶端
- miniSipServer簡單而不簡單,輕鬆落地,實現電腦對固話、手機通訊Server
- python實現簡單猜單詞遊戲Python遊戲
- 使用canvas實現簡單動畫Canvas動畫
- 使用 python 實現簡單的共享鎖和排他鎖Python
- 簡單實現TCP下的大檔案高效傳輸TCP
- 直播平臺原始碼,簡單實現 彈出確認 取消對話方塊原始碼
- python實現的簡單點對點(p2p)聊天Python
- Java實現的簡單電話號碼儲存Java
- python下ssh的簡單實現Python
- Promise的使用及簡單實現Promise
- Eclipse平臺中“MessageDialog”訊息對話方塊的簡單實現Eclipse
- 簡單CSS實現閃爍動畫(+1白話講解)CSS動畫
- 實現對gridview刪除行時彈出確認對話方塊的一種簡單方法View
- 聊聊UDP、TCP和實現一個簡單的JAVA UDP小DemoUDPTCPJava
- TCP通訊客戶端和服務端簡單程式碼實現TCP客戶端服務端
- 智慧家居簡單實現---使用ESP8266簡單實現和APP通訊APP
- Python使用socket_TCP實現小檔案下載PythonTCP
- TCP/UDP簡單介紹及JavaSocket的使用TCPUDPJava
- Kafka 簡單實驗二(Python實現簡單生產者消費者)KafkaPython
- 使用python對oracle進行簡單效能測試PythonOracle
- 使用rails實現最簡單的CRUDAI
- 使用Node+React實現簡單CRUDReact
- 使用 Proxy 實現簡單的 MVVM 模型MVVM模型
- python爬蟲簡單實現逆向JS解密Python爬蟲JS解密
- Python Django實現簡單購物車功能PythonDjango
- [python]有限狀態機(FSM)簡單實現Python
- Python基於TCP實現聊天功能PythonTCP
- Python Tkinter 簡單使用Python
- Python request簡單使用Python
- 使用Java實現簡單的鬥地主案例Java
- 使用HMM實現簡單拼音輸入法HMM
- 使用Go語言實現簡單MapReduce框架Go框架