socket中的TCP编程(调用免费聊天的机器人实现自动回复)

        socket中的TCP编程(调用免费聊天的机器人实现自动回复)

在无聊时间复习了socket编程,写了这个简易代码!!注意要在联网状态下跑

1:服务器模块:

import socket
import requests

import random
#自动生成回复语句
def get_response_message(msg):
	'''#api链接地址,我调用的是青云客,免费可以使用1000条/h,还可以无密钥智能机器人API接口说明
#支持功能:天气、翻译、藏头诗、笑话、歌词、计算、域名信息/备案/收录查询、IP查询、手机号码归属、人工智能聊天
接口地址:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词
     key 固定参数free
     appid 设置为0,表示智能识别,可忽略此参数
     msg 关键词,请参考下方参数示例,该参数可智能识别,该值请经过 urlencode 处理后再提交
返回结果:{"result":0,"content":"内容"}
     result 状态,0表示正常,其它数字表示错误
     content 信息内容''' 
	apiUrl = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg='+msg
	
	try:
		#获取机器人的回复信息
		r = requests.post(apiUrl).json()
		#print(r)
		return r.get('content')
	except:
		return

def main():
	#本机运行
	HOST=''
	PORT = 5006
	s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
	s.bind((HOST,PORT))
	s.listen()
	print('listen at port:',PORT)
	conn,addr = s.accept()
	print('connected by',addr)
	while True:
		data = conn.recv(1024)
		data = data.decode()
		if not data:
			break
		print('Received message:',data)
		if data =='bye':
			conn.sendall('好的,byebye!!!'.encode())
		else:
			conn.sendall(get_response_message(data).encode())
	conn.close()
	s.close()

if __name__ == '__main__':
	main()

2:客户端模块

import socket
#ip地址以及端口
HOST='127.0.0.1'
PORT = 5006
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
	s.connect((HOST,PORT))
except Exception as e:
	print('server not found or not open')
	sys.exit()

while True:
	c = input('input the content you want to send:')
	s.sendall(c.encode())
	data = s.recv(1024)
	data = data.decode()
	print('recvied data:',data)
	#chat end flag
	if c.lower()=='bye':
		break
s.close()

3聊天记录截图

 

 也可以为客户机调用机器人接口

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值