2Python全栈之路系列之基于socket实现聊天机器人
生活随笔
收集整理的這篇文章主要介紹了
2Python全栈之路系列之基于socket实现聊天机器人
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python全棧之路系列之基于socket實現聊天機器人
通過socket實現局域網內的聊天工具。
service.py文件如下:
#!/usr/bin/env?python #?_*_?coding:utf-8?_*_import?socket#?創建一個socket對象 sk?=?socket.socket()#?綁定允許連接的IP地址和端口 sk.bind(('127.0.0.1',?6053,?))#?服務端允許起來之后,限制客戶端連接的數量,如果超過五個連接,第六個連接來的時候直接斷開第六個。 sk.listen(5)while?True:#?會一直阻塞,等待接收客戶端的請求,如果有客戶端連接會獲取兩個值,conn=創建的連接,address=客戶端的IP和端口conn,?address?=?sk.accept()#?當用戶連接過來的時候就給用戶發送一條信息,在Python3里面需要把發送的內容轉換為字節conn.sendall(bytes("你好,歡迎登陸!",?encoding="utf-8"))while?True:#?輸出等待客戶端發送內容print("正在等待Client輸入內容......")#?接收客戶端發送過來的內容ret_bytes?=?conn.recv(1024)#?轉換成字符串類型ret_str?=?str(ret_bytes,?encoding="utf-8")#?輸出用戶發送過來的內容print(ret_str)#?如果用戶輸入的是qif?ret_str?==?"q":#?則退出循環,等待下個用戶輸入break#?給客戶端發送內容inp?=?input("Service請輸入要發送的內容>>>?")conn.sendall(bytes(inp,?encoding="utf-8"))client.py文件內容如下:
#!/usr/bin/env?python #?_*_?coding:utf-8?_*_import?socket#?創建一個socket對象 obj?=?socket.socket()#?制定服務端的IP地址和端口 obj.connect(('127.0.0.1',?6053,?))#?阻塞,等待服務端發送內容,接受服務端發送過來的內容,最大接受1024字節 ret_bytes?=?obj.recv(1024)#?因為服務端發送過來的是字節,所以我們需要把字節轉換為字符串進行輸出 ret_str?=?str(ret_bytes,?encoding="utf-8")#?輸出內容 print(ret_str)while?True:#?當進入連接的時候,提示讓用戶輸入內容inp?=?input("Client請輸入要發送的內容>>>?")#?如果輸出q則退出if?inp?==?"q":#?把q發送給服務端obj.sendall(bytes(inp,?encoding="utf-8"))#?退出當前whilebreakelse:#?否則就把用戶輸入的內容發送給用戶obj.sendall(bytes(inp,?encoding="utf-8"))#?等待服務端回答print("正在等待Server輸入內容......")#?獲取服務端發送過來的結果ret?=?str(obj.recv(1024),?encoding="utf-8")#?輸出結果print(ret)#?連接完成之后關閉鏈接 obj.close()執行結果
#Python全棧之路?#Socket
轉載于:https://blog.51cto.com/edeny/1917848
總結
以上是生活随笔為你收集整理的2Python全栈之路系列之基于socket实现聊天机器人的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 竖直手风琴导航菜单栏
- 下一篇: java多线程基本概述(二十六)——免锁