> 백엔드 개발 > 파이썬 튜토리얼 > TCP 프로토콜을 기반으로 클라이언트와 서버 간 중국어 자동 응답 채팅 기능을 구현하는 Python+Socket에 대한 자세한 소개

TCP 프로토콜을 기반으로 클라이언트와 서버 간 중국어 자동 응답 채팅 기능을 구현하는 Python+Socket에 대한 자세한 소개

巴扎黑
풀어 주다: 2017-09-02 13:10:51
원래의
1717명이 탐색했습니다.

이 글에서는 TCP 프로토콜을 기반으로 클라이언트와 서버 간 중국어 자동 응답 채팅 기능을 구현하기 위한 Python+Socket을 주로 소개하고, 자동 응답 기능이 있는 TCP 채팅 프로그램을 구현하기 위한 Python+Socket의 관련 동작 방법과 주의사항을 분석합니다. 필요한 친구가 참고할 수 있습니다.

이 글에서는 TCP 프로토콜을 기반으로 클라이언트와 서버 간 중국어 자동 응답 채팅 기능을 구현한 Python+Socket의 예를 설명합니다. 참고하시라고 내용을 공유합니다.

【불만사항】

확실히 사람을 죽이는 코드인 것 같지만 실행에는 문제가 있습니다.
코드를 좋아하고 코드 수집을 좋아하는 친구들은 다른 사람의 코드를 보면 붙여넣고 복사하기도 합니다. 하지만 적어도 실행해 볼 수는 있습니다 형제

【Text】

어제 C/S 채팅 프로그램을 UDP 프로토콜을 실행하도록 수정했는데 TCP 프로토콜이 작동하지 않았습니다. 다양한 시련, 다양한 함정.

다음과 같이 수정하면 마침내 작동합니다.

1. 보내고 받은 정보를 각각 인코딩하고 디코딩합니다.
2. 클라이언트의 10번째 줄에서 연결을 변경합니다(정말 대단한 일입니다! )

(이 글은 windows 7 + python 3.4 기준입니다.)

전체 코드는 다음과 같습니다. (보증, 제가 직접 테스트했습니다!) :

서버 측:


# tcp_server.py
'''服务器'''
from socket import *
from time import ctime
HOST = '' #主机地址
PORT = 23345 #端口号
BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
ADDR = (HOST, PORT) #链接地址
tcpSerSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
tcpSerSock.bind(ADDR) #绑定地址
tcpSerSock.listen(5) #最大连接数为5
while True: #无限循环
  print('尝试连接客户端。。。')
  tcpCliSock, addr = tcpSerSock.accept() #等待接受连接
  print('链接成功,客户端地址为:', addr)
  while True:
    data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
    if not data: break #如果data为空,则跳出循环
    print(data.decode())
    msg = '{} 服务器已接收 [自动回复]'.format(ctime())
    tcpCliSock.send(msg.encode())
  tcpCliSock.close() #关闭连接
tcpSerSock.close() #关闭服务器
로그인 후 복사

클라이언트 측:


# tcp_client.py
'''客户端'''
from socket import *
from time import ctime
HOST = 'localhost' #主机地址
PORT = 23345 #端口号
BUFSIZ = 2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
ADDR = (HOST, PORT) #链接地址
tcpCliSock = socket(AF_INET, SOCK_STREAM) #创建一个TCP套接字
#tcpCliSock.bind(ADDR) #绑定地址
tcpCliSock.connect(ADDR) #绑定地址
while True:
  msg = input('请输入:') #输入数据
  if not msg: break #如果 msg 为空,则跳出循环
  tcpCliSock.send(msg.encode())
  data = tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
  if not data: break #如果data为空,则跳出循环
  print(data.decode())
로그인 후 복사

【스크린샷 실행】

실험 방법: 서버를 먼저 실행한 후 클라이언트를 실행합니다

클라이언트에서 서버와 자유롭게 채팅할 수 있습니다.

위 내용은 TCP 프로토콜을 기반으로 클라이언트와 서버 간 중국어 자동 응답 채팅 기능을 구현하는 Python+Socket에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿