Python使用 TCP协议实现智能聊天机器人功能

目录

1、TCP协议简单介绍(传输控制协议)

2、代码实现

3、进行聊天


1、TCP协议简单介绍(传输控制协议

TCP协议是在计算机网络TCP/IP体系中非常重要而且复杂的一个协议,它主要服务于传输层。最著名的就是TCP的三次握手和四次挥手。TCP是面向连接的运输层协议。应用程序在使用TCP协议之前,必须先建立TCP连接,数据传送完毕后,必须释放已经建立的TCP连接。TCP提供的是可靠交付的服务,通过TCP连接的数据,无差错、不重复、不丢失、而且按序到达!

2、代码实现

客户端

import socket
import sys
s =socket.socket()
try:
    s.connect(('127.0.0.1',8000))
except Exception as e:
    print('Can\'t find the Sever please try again')
    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('Received:',data)
    if c.lower()=='bye':
        break
s.close()
#测试用例:
#how are you
#how old are you
#what's your name
#bye

服务端

from os.path import commonprefix
from posixpath import split
import socket
#建立聊天回复字典
words={'how are you?':'Fine,thank you.',
        'how old are you?':'18',
        'what is your name?':'xiaoming',
        'which subject do you like?':'computer science',
        'bye':'Bye'}
s =socket.socket()
s.bind(('127.0.0.1',8000))
s.listen(1)
clientsocket,clientaddress= s.accept()
print('Connection from',clientaddress)
#开始聊天
while True:
    data=clientsocket.recv(1024).decode()
    if not data:
        break
    print('Received:',data)
    i=0
    key=''
    for k in words.keys():
        data=' '.join(data.split())
        if len(commonprefix([k,data]))>len(k)*0.75:
            key=k
            break
        length=len(set(data.split())&set(k.split()))
        if length>i:
            i=length
            key=k
    clientsocket.sendall(words.get(key,'Sorry,can\'t find the question').encode())
clientsocket.close()

3、进行聊天 Python使用 TCP协议实现智能聊天机器人功能_第1张图片

Python使用 TCP协议实现智能聊天机器人功能_第2张图片

你可能感兴趣的:(python,tcp/ip,python)