> 백엔드 개발 > 파이썬 튜토리얼 > Python 소켓으로 간단한 통신 완료

Python 소켓으로 간단한 통신 완료

coldplay.xixi
풀어 주다: 2020-12-25 17:29:19
앞으로
6266명이 탐색했습니다.

python tutorial 칼럼은 소켓 통신 방법을 소개합니다

Python 소켓으로 간단한 통신 완료

권장(무료): python tutorial

소켓 소개

소켓은 "소켓"이라고도 합니다. Word", 소켓은 udp/tcp 프로토콜을 통해 데이터를 전송하여 두 시스템 간의 간단한 통신을 달성합니다.

참고: 두 컴퓨터 간의 간단한 통신을 위해 소켓을 사용하려면 먼저 두 컴퓨터가 동일한 로컬 네트워크에 연결되어 있는지 확인하세요. 물론 소켓은 머신 간 통신도 구현할 수 있습니다. 연결 개체 IP를 로컬 IP인 127.0.0.1로 설정하기만 하면 됩니다.

예제

여기에는 몇 가지 실용적인 기능만 표시되어 있습니다.


함수 설명
socket.socket() 소켓 만들기
socket.bind() 바인딩 IP 및 포트, 수신 매개변수는 다음과 같습니다. tuples
socket.recv() 데이터 수락
socket.send() 데이터 보내기
socket.close() 소켓을 닫습니다
socket.connect() IP 및 포트에 연결
socket.listen() TCP 포트에서 청취 모드 활성화
socket.accept() 차단, 연결 대기 중

통신 기능 기계 사이

소켓 서버

socket_server.py를 만들고 다음 코드를 입력하겠습니다:

import socket
server = socket.socket()server.bind(('0.0.0.0',80))server.listen()sock,addr = server.accept()data = ""while True:
    tmp_data = sock.recv(1024)
    if tmp_data:
        data += tmp_data.decode("utf8")
    else:
        breakprint('%s发送的内容:%s'%(addr[0],data))sock.close()
로그인 후 복사

여기서 소켓을 만들고 0.0:80 주소에 바인딩합니다. 로컬 컴퓨터의 이름으로 변경되었습니다. 그런 다음 사용자가 연결한 후 수신 모드를 시작합니다(참고: 데이터를 수락하기 전에 utf8 디코딩이 필요합니다).

socket client

socket_server.py를 생성한 후 클라이언트를 생성할 수 있습니다. Socket_client.py라는 파일을 생성한 후 다음 코드를 입력해 보겠습니다.

import socket
client = socket.socket()client.connect(('127.0.0.1',80))client.send("Hello,Server.".encode("utf8"))client.close()
로그인 후 복사

여기에서는 연결 및 전송이라는 두 가지 기능에 대해서만 설명합니다. 연결 함수에 튜플을 전달했지만 물론 목록도 작동합니다. 첫 번째 요소는 연결된 개체 IP여야 하고 두 번째 요소는 포트입니다. 연결이 완료된 후 보내기 기능을 사용하여 메시지를 보내기 전에 콘텐츠를 utf8 유형으로 인코딩해야 합니다.

웹사이트로 데이터 보내기

socket_website.py라는 파일을 만들고 다음 코드를 입력합니다.

import socket
s.connect(('www.baidu.com',443))s.send('HELLO'.encode('utf8'))s.close()
로그인 후 복사

여기서 Baidu.com은 https 프로토콜을 사용하므로 포트를 사용합니다. 443. 코드가 오류를 보고하지 않으면 전송이 성공한 것입니다. 현재 Baidu의 데이터베이스에는 HELLO라는 추가 텍스트 콘텐츠 데이터가 있습니다.

팁: 소켓을 계속 사용하여 웹사이트나 머신에 데이터를 보내는 경우, 데이터가 너무 많으면 대상 데이터베이스/머신 메모리가 가득 차서 충돌이 발생할 수 있습니다. 이것은 단순한 전설적인 DDoS 공격을 구현합니다

위 내용은 Python 소켓으로 간단한 통신 완료의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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