日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c语言socket调用图灵API,socket通信(四):socket实现机器人在线聊天

發(fā)布時間:2024/9/30 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言socket调用图灵API,socket通信(四):socket实现机器人在线聊天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實現思路:客戶端(本機)向服務端發(fā)送消息;服務端接收消息,并調用圖靈機器人API接口,獲取回復返回給客戶端。

首先需要先去圖靈機器人http://www.tuling123.com申請帳號,并創(chuàng)建機器人應用,獲取授權碼(apikey);

客戶端;

創(chuàng)建socket-->連接服務器-->發(fā)送請求-->關閉socket-->結束進程

import socket

import time

def recv_msg(s):

data = s.recv(1024)

if data:

print("\n【機器人小圖】"+" "+time.strftime('%Y-%m-%d:%H:%M:%S',time.localtime(time.time())))

print(data.decode('utf-8'))

return True

return False

username = input('input your name:')

port = 9999

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('127.0.0.1', port))

# 接受服務器的welcom

data = s.recv(1024)

print(data.decode('utf-8'))

msg = input('input msg:')

s.send("{username}::{msg}".format(username=username,msg=msg).encode("utf-8"))

while True:

if recv_msg(s):

msg = input('\n I:')

s.send("{username}::{msg}".format(username=username,msg=msg).encode("utf-8"))

if msg == 'exit':

print('chat is over.')

break

s.close()

服務端;

創(chuàng)建socket-->綁定地址端口-->監(jiān)聽-->與客戶端建立連接-->處理客戶端的請求-->關閉socket

ctrl+c手動結束服務器的進程

import socket

import time

import threading

import requests

import json

def get_response(info):

# 調用圖靈機器人API

key = 'caeac376c1084b9ca3bd762244b60ce8'

url = 'http://www.tuling123.com/openapi/api?key=' + key + '&info=' + info

res = requests.get(url)

res.encoding = 'utf-8'

jd = json.loads(res.text)

return jd['text']

# 處理客戶端的請求

def tcplink(sock, addr):

sock.send("welcom!".encode('utf-8'))

# 客戶端地址

print('client address is:', sock.getpeername())

# 本機(服務端)地址

print('server address is:', sock.getsockname())

while True:

data = sock.recv(1024).decode('utf-8')

# 處理接受到的消息

username, msg = data.split('::')[0], data.split('::')[1]

if msg == 'exit':

break

print(username+':'+time.strftime('%Y-%m-%d:%H:%M:%S',time.localtime(time.time())))

print(msg)

response = get_response(msg)

sock.send(response.encode('utf-8'))

sock.close()

print('the chat with %s is over.' % username)

port = 9999

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('127.0.0.1', port))

s.listen(5)

print("listening 127.0.0.1:%d, and waiting for connection..." % port)

while True:

sock, addr = s.accept()

t = threading.Thread(target=tcplink, args=(sock, addr, ))

t.start()

實現效果

在線聊天機器人

總結

以上是生活随笔為你收集整理的c语言socket调用图灵API,socket通信(四):socket实现机器人在线聊天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。