在无聊时间复习了socket编程,写了这个简易代码!!注意要在联网状态下跑
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()
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()
也可以为客户机调用机器人接口