python tutorial 칼럼은 소켓 통신 방법을 소개합니다
권장(무료): 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_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!