用python实现的一个自动聊天的机器人
2017-12-11 10:54
1216 查看
import socket import time import tkinter from tkinter.scrolledtext import ScrolledText import threading import requests import tkinter from socket import * from time import ctime from tkinter import *
import socket import time import tkinter from tkinter.scrolledtext import ScrolledText import threading import requests import tkinter from socket import * from time import ctime from tkinter import *
global cs,Text_Show,Send_Show
#发送按键的函数
def Click_Send():
sendData=Send_Show.get() #获取输入内容
if sendData == 'quit':
Text_Show.insert(tkinter.END,"与服务器连接已断开"+"\n")
Text_Show.see(tkinter.END)
cs.sendall(bytes(sendData, encoding="utf8"))
cs.close()
else:
Text_Show.insert(tkinter.END,"客户端:"+sendData+"\n")
Text_Show.see(tkinter.END)
cs.sendall(bytes(sendData, encoding="utf8"))
Send_Show.delete(0,END)
#线程函数,循环接受客户端消息
def Receive_Data():
while True:
accept_data = str(cs.recv(1024), encoding="utf8")
Text_Show.insert(tkinter.END,"服务器:"+accept_data+"\n")
Text_Show.see(tkinter.END)
#主函数
if __name__ == "__main__":
#初始化GUI
root=tkinter.Tk()
root.title("聊天小程序客户端 ")
#顶部显示部分
frame1=Frame(root)
frame1.pack()
IP_Show_Label=Label(frame1,text="本程序默认IP:127.0.0.1\n默认端口为6000\n无法更改!!!")
IP_Show_Label.pack(side='left')
#中部聊天框显示部分
frame2=Frame(root)
frame2.pack()
Text_Show=ScrolledText(frame2,width=70,height=15)
Text_Show.bind("<KeyPress>",lambda e:"break")
Text_Show.pack(side="bottom",fill = 'both', expand = True)
#底部消息发送部分
frame3=Frame(root)
frame3.pack()
e3=StringVar()
Send_Show=Entry(frame3, textvariable=e3,width=60)
buttontext2 = tkinter.StringVar()
buttontext2.set('发送')
button_Send = tkinter.Button(frame3,width=10, textvariable=buttontext2,command=Click_Send )
Send_Show.pack(side="left")
button_Send.pack(side="left")
frame3.pack()
#初始化TCP协议
HOST='127.0.0.1'
PORT=4700
BUFSIZ=1024
ADDR=(HOST,PORT)
cs=socket(AF_INET,SOCK_STREAM,0)
cs.connect(ADDR)
thread=threading.Thread(target=Receive_Data)
thread.start()
root.mainloop()
global Text_Show#调用人工智能对话的函数,返回人工智能回答def AI_Talk(s): response = requests.post("http://www.tuling123.com/openapi/api", data={ "key": "5636c0854e88430383a861151bf764ca", "info": s, "userid": "123456" }) response = response.json() answer=response['text'] return
answer#线程二函数,用来进行对话def Sever_Thread(sock,caddr): Text_Show.insert('end',"客户端@"+str(caddr[1])+"已连接!\n") while True: # 接收数据 data = str(sock.recv(1024).decode('UTF-8')) if data == "quit": Text_Show.insert('end',"客户端@"+str(caddr[1])+"终止了对话\n") Text_Show.see(tkinter.END)
break else: Text_Show.insert('end',"来自客户端@"+str(caddr[1])+"的消息为:"+data+'\n') Text_Show.see(tkinter.END) #发送数据 time.sleep(0.2) data=AI_Talk(data) #data = '请输入发送至客户端的数据: 123123' #如果要手动输入的话就要设置好线程sleep时间不然还没有输入,就已经到其他线程了,就会发不出去。 sock.sendall(bytes(data, 'UTF-8'))
sock.close()#线程一函数,监听端口,一旦有客户端接入,开启线程二def Sever_Accept(ss): while True: sock,caddr=ss.accept() Thread2 = threading.Thread(target=Sever_Thread, args=(sock,caddr)) Thread2.daemon=True #线程守护 Thread2.start()#服务器初始化def Sever_Init(): HOST = '' PORT = 4700 ADDR =
(HOST, PORT) ss = socket(AF_INET, SOCK_STREAM, 0) ss.bind(ADDR) ss.listen(20) #允许最大监听数 Thread1=threading.Thread(target=Sever_Accept,args=(ss,)) Thread1.daemon=True #线程守护 Thread1.start()#主函数if __name__ == "__main__": root=tkinter.Tk() root.title("聊天小程序服务器端
") frame1=Frame(root) frame1.pack() IP_Show_Label=Label(frame1,text="默认IP:127.0.0.1\n默认端口为6000\n无法更改!!!") IP_Show_Label.pack(side='left') frame2=Frame(root) frame2.pack() Text_Show=ScrolledText(frame2,width=100,height=30) Text_Show.bind("<KeyPress>",lambda
e:"break") Text_Show.pack(side="bottom",fill = 'both', expand = True) Sever_Init() root.mainloop()
相关文章推荐
- python实现微信自动回复及接入聊天机器人等功能
- 2Python全栈之路系列之基于socket实现聊天机器人
- 一个使用 Python 的人工智能聊天机器人框架
- Python写一个微信自动回复的机器人
- Python实现微信自动回复机器人
- Python实现微信自动回复(机器人版本)
- Python实现插件机制——自动import一个目录下的所有.py文件
- python实现微信机器人自动回复
- 用python itchat写一个微信机器人自动回复
- Python实现微信自动拉群机器人
- Python进阶开发之网络编程,socket实现在线聊天机器人
- python利用TCP实现会聊天的小机器人
- Python基于TCP实现会聊天的小机器人功能示例
- Python编写的命令行版微信。(已集成自动聊天机器人(通过网址api形式))
- 使用Python的Tornado框架实现一个简单的WebQQ机器人
- python+soket实现 TCP 协议的客户/服务端中文(自动回复)聊天程序
- 豆瓣机器人 自动加入/退出小组、自动在小组发帖/删帖、自动回复 Python实现代码 豆瓣爬虫
- 百度大脑和图灵机器人制作一个简单的自动聊天机器人【PHP代码】
- 如何做一个自动聊天的机器人或者绑定自己的微信,QQ.......
- python 实现微信自动回复(自动聊天)