>백엔드 개발 >파이썬 튜토리얼 >채팅방 Python 코드 구현

채팅방 Python 코드 구현

高洛峰
高洛峰원래의
2017-02-25 11:30:111543검색

Java 채팅방에 비해 Python도 가능합니다. 그리고 더 우아하게 할 수 있습니다. 다양한 스트림의 Python 소켓이 훨씬 적다는 사실이 마음에 드실 겁니다.

지식 포인트 관련 내용은 여기서 자세히 다루지 않겠습니다.

UDP 방식

서버측

rreee

클라이언트

아아앙

아주 간단하지 않나요. 우리가 주목해야 할 것은 소켓의 두 번째 매개변수가 SOCK_DGRAM이라는 것입니다. 이는 TCP 모드의 SOCK_STREAM과 다르기 때문입니다.

TCP 모드

서버측

# coding:utf-8

#  __author__ = 'Mark sinoberg'
#  __date__ = '2016/7/7'
#  __Desc__ = 创建一个简单的套接字监听请求

import socket

HOST = '192.168.59.255'
PORT = 9998

s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('',PORT))
print '套接字已启动!'
while True:
  data,addr = s.recvfrom(1024)
  print addr,str(' : ')+data

클라이언트

# coding:utf-8

#  __author__ = 'Mark sinoberg'
#  __date__ = '2016/7/7'
#  __Desc__ = socket的客户端的简单实现

import socket

PORT = 9998
HOST = '192.168.59.255'
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
words = raw_input('Client:')
while words != 'quit':
  s.sendto(words,(HOST,PORT))
  words = raw_input('Client:')
s.close()

TCP 모드 시연 결과: (먼저 차례를 참고하세요. 서버 측)

서버 측

D:SoftwarePython2python.exe E:/Code/Python/MyTestSet/sockettest/SimpleTCPServer.py
세넥트 클라이언트를 기다리고 있습니다!
Connected By ('192.168.59.225', 63095)
('192.168.59.225', 63095) Says: Thu Jul 07 16:01:10 2016 Hello World
( '192.168.59.225', 63095) 내용: Thu Jul 07 16:01:15 2016 haode
데이터가 수신되지 않았습니다!
클라이언트 cennect를 기다리는 중입니다!

클라이언트

D:SoftwarePython2python.exe E:/Code/Python/MyTestSet/sockettest/SimpleTcpClient.py
>>>Hello World
안녕하세요. 저에게 다음을 보내주세요: [Thu Jul 07 16:01:10 2016]Hello World
>>>
단어를 입력해주세요!
>>>
>>>haode
안녕하세요. 다음을 보내주세요:[Thu Jul 07 16:01:15 2016]haode
>>>quit

종료 코드 0으로 프로세스가 완료되었습니다

요약

TCP나 UDP를 간단하게 사용하는 것은 정말 쉽지만, 이 두 프로토콜을 더 잘 활용하려면 신중하게 설계해야 합니다.

여기서 강조하고 싶은 것은 tcp와 udp가 소켓을 생성할 때 지정하는 매개변수에만 주의하라는 것입니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

대화방 Python 코드 구현과 관련된 더 많은 글은 PHP 중국어 홈페이지를 주목해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.