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()
執行效果:
相關文章
- .NET使用OllamaSharp實現大模型推理對話的簡單演示大模型
- TCP和UDP實現簡單一對一通訊TCPUDP
- tcp 實現簡單http 問題TCPHTTP
- Python實現簡單的excel對比工具PythonExcel
- python 實現 TCP 伺服器最簡流程PythonTCP伺服器
- python 實現 TCP、UDP 客戶端最簡流程PythonTCPUDP客戶端
- 使用 python 實現簡單的共享鎖和排他鎖Python
- python實現的簡單點對點(p2p)聊天Python
- Python實現簡單負載均衡Python負載
- python實現簡單猜單詞遊戲Python遊戲
- 直播平臺原始碼,簡單實現 彈出確認 取消對話方塊原始碼
- Promise的使用及簡單實現Promise
- 使用canvas實現簡單動畫Canvas動畫
- Python使用socket_TCP實現小檔案下載PythonTCP
- 實現對gridview刪除行時彈出確認對話方塊的一種簡單方法View
- 使用python對oracle進行簡單效能測試PythonOracle
- 智慧家居簡單實現---使用ESP8266簡單實現和APP通訊APP
- 聊聊UDP、TCP和實現一個簡單的JAVA UDP小DemoUDPTCPJava
- TCP通訊客戶端和服務端簡單程式碼實現TCP客戶端服務端
- Python Tkinter 簡單使用Python
- python - Counter簡單使用Python
- python 爬取 blessing skin 的簡單實現Python
- python爬蟲簡單實現逆向JS解密Python爬蟲JS解密
- Python簡單實現多執行緒例子Python執行緒
- Python基於TCP實現聊天功能PythonTCP
- 使用 Proxy 實現簡單的 MVVM 模型MVVM模型
- Java使用Netty實現簡單的RPCJavaNettyRPC
- 使用Node+React實現簡單CRUDReact
- 使用rails實現最簡單的CRUDAI
- C# WebSocket的簡單使用【使用Fleck實現】C#Web
- 簡單CSS實現閃爍動畫(+1白話講解)CSS動畫
- Python實現簡單驗證碼的轉文字Python
- 教你python tkinter實現簡單計算器功能Python
- Python-split()函式用法及簡單實現Python函式
- Python技法:實現簡單的遞迴下降ParserPython遞迴
- 使用Java實現簡單的鬥地主案例Java
- TCP對應的協議和UDP對應的協議(簡單概述)TCP協議UDP
- 簡易版的Spring框架之AOP簡單實現(對我來說不簡單啊)Spring框架