Python 소켓 플러시

Abid Ullah 2024년2월15일
  1. Python 소켓 플러시
  2. Python에서 소켓 플러시
Python 소켓 플러시

이 기사에서는 Python의 socket 모듈이 기본 네트워크 소켓 구현에 대한 저수준 인터페이스를 제공하는 방법을 살펴봅니다. Python의 socket 모듈에서 몇 가지 중요한 메서드를 볼 수 있습니다.

또한 Python을 사용하여 서버에서 클라이언트로 메시지를 보내는 방법을 이해하기 위해 몇 가지 Python 코드를 살펴보겠습니다. 자, 시작하겠습니다.

Python 소켓 플러시

Python에서 소켓을 플러시하는 방법에 대해 궁금한 적이 있습니까? 그렇다면 우리는 혼자가 아닙니다.

소켓 플러시는 네트워크 응용 프로그램에서 일반적이지만 대부분의 사람들은 작동 방식을 이해하는 데 도움이 필요합니다.

이 Python 기사에서는 소켓 플러시가 무엇이며 어떻게 작동하는지 살펴보겠습니다. 또한 Python에서 소켓을 플러시하는 방법에 대해서도 설명합니다.

소켓 플러싱 정의

소켓을 플러시할 때 내부 버퍼를 지웁니다. 이 버퍼는 전송 또는 수신 대기 중인 데이터를 저장합니다.

버퍼의 모든 데이터가 송수신되도록 하려면 소켓을 플러시해야 하는 경우가 많습니다.

예를 들어 원격 서버에 데이터를 보내는 경우 연결이 종료되기 전에 모든 데이터가 전송되도록 소켓을 플러시할 수 있습니다.

Python의 소켓 플러시 기능은 소켓의 쓰기 버퍼를 플러시하는 데 사용됩니다. 이 함수는 일반적으로 소켓이 닫히기 전에 버퍼의 모든 데이터가 전송되도록 하는 데 사용됩니다.

소켓 플러싱 프로세스

소켓을 플러시하면 버퍼의 데이터가 즉시 전송되거나 수신됩니다. 소켓 플러시 프로세스는 일반적으로 운영 체제(Windows, Mac 또는 Linux)에서 처리합니다.

대부분의 경우 소켓 플러시가 작동하는 방식에 대한 세부 사항에 대해 걱정할 필요가 없습니다. 그러나 버퍼의 데이터는 즉시 전송되거나 수신된다는 점을 이해하는 것이 중요합니다. 즉, 모든 데이터가 전송되기 전에 연결이 닫히면 데이터가 손실될 수 있습니다.

Python에서 소켓 플러시

Python에서 소켓을 플러시하는 것은 비교적 간단합니다. 이 프로세스는 Python에서 파일을 플러시하는 것과 유사합니다.

보시다시피 프로세스는 매우 간단합니다. 그러나 버퍼의 데이터는 즉시 전송되므로 연결이 종료되기 전에 모든 데이터가 전송되도록 주의해야 합니다.

Python에서 소켓 프로그래밍을 수행하려면 socket 모듈 또는 프레임워크를 가져와야 합니다. 이 모듈은 소켓을 만들고 서로 연결하는 데 필요한 내장 메서드로 구성됩니다.

소켓 모듈의 중요한 방법:

  1. socket.socket(): 소켓을 생성하는 데 사용됩니다(소켓 생성을 위해 서버 및 클라이언트 측 모두에 필요함).
  2. socket.accept(): 연결을 수락하는 데 사용됩니다. 값 쌍(conn, address)을 반환합니다.
  3. socket.bind(): 매개변수로 지정된 주소에 바인딩하는 데 사용됩니다.
  4. socket.close(): 매개변수로 지정된 주소에 바인딩하는 데 사용됩니다.
  5. socket.connect(): 소켓을 닫힌 것으로 표시합니다.
  6. socket.listen(): 매개변수로 지정된 원격 주소에 연결하는 데 사용됩니다.

섬기는 사람

이제 파일을 만들고 이름을 지정합니다. 이 경우 파일 이름을 SERVER1.py로 지정했습니다.

이제 우리는 서버용 코드 작성을 시작할 것입니다.

먼저 socket 라이브러리를 가져옵니다. 그런 다음 socket.socket() 메서드를 사용하여 소켓을 만들고 sock에 할당합니다.

괄호 안에 socket.AF_INET을 사용하여 주소 패밀리를 AF_INET으로 지정합니다. AF_INET은 인터넷의 주소를 나타냅니다.

그리고 한 쌍의 호스트와 포트 번호가 필요합니다. 호스트는 특정 웹사이트의 URL이나 주소 또는 포트 번호를 정수로 사용할 수 있습니다.

지정할 두 번째 매개변수는 socket.SOCK_STREAM입니다. SOCK_STREAM은 TCP 프로토콜을 생성하는 데 사용됩니다.

다음으로 해야 할 일은 바인딩 기능을 작성하는 것입니다. bind 메서드는 두 개의 매개변수를 튜플로 허용하므로 집합적으로 하나의 매개변수가 됩니다.

호스트와 포트 번호에 동의합니다. 매개변수로 socket.gethostname(), 1024를 사용합니다.

우리는 서버가 클라이언트에 바인딩되기를 원하기 때문에 바인딩 방법을 사용합니다.

이제 listen 메서드를 사용하고 임의의 숫자를 전달합니다. 우리의 경우 5를 통과했습니다.

이제 우리는 루프를 사용하여 연결이 True인 동안 서버가 클라이언트 소켓과 해당 주소를 수락하기를 원합니다. 이를 위해 수락 방법을 사용합니다.

클라이언트 소켓과 해당 주소를 수신하면 이를 인쇄합니다. print 메서드를 사용하고 print 메서드에서는 f 문자열을 사용합니다.

f 문자열은 f 접두사가 있는 리터럴 문자열이며 대괄호 안에 Python 표현식을 포함합니다. print 문 내에서 {adr}에 대한 연결이 설정되었습니다.라는 메시지를 표시합니다.

따라서 연결이 설정되면 서버에서 클라이언트로 일부 메시지를 전달하려고 합니다. 이를 위해 c.send를 사용합니다.

그리고 바이트가 필요하므로 지정합니다. 그 안에 우리는 우리의 메시지를 쓸 것입니다.

우리의 경우 메시지는 Python의 소켓 프로그래밍입니다. 우리는 바이트를 사용했기 때문에 어떤 바이트를 써야 합니다.

우리의 경우 utf-8이라고 쓸 것입니다. 이제 서버가 준비되었습니다.

예제 코드:

import socket

# We imported the socket library
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((socket.gethostname(), 1024))
sock.listen(5)
while True:
    clt, adr = sock.accept()
    print(f"Connection to {adr} established.")
    clt.send(bytes("Socket programming in Python", "utf-8"))

명령 프롬프트에서 커서가 깜박이는 것을 볼 수 있습니다. 이제 우리는 클라이언트로 이동합니다.

고객

따라서 동일한 디렉토리에서 새 파일을 열고 이름을 지정합니다.

이 경우 파일 이름을 CLIENT1.py로 지정했습니다. 가장 먼저 할 일은 socket 라이브러리를 가져오는 것입니다.

이제 socket 메소드를 사용하여 클라이언트용 소켓을 생성합니다. 서버용으로 만든 것과 같은 방식입니다.

이제 클라이언트가 서버와 연결되기를 원합니다. 따라서 connect 메서드를 사용하고 서버에서 사용한 동일한 포트 번호와 함께 매개 변수를 gethostname으로 지정합니다. 그래서 1024입니다.

이제 메시지를 변수에 저장해야 합니다. 우리의 경우 이름을 msg로 지정합니다.

recv 메소드를 사용하여 메시지를 수신합니다. 이 recv 메소드에 매개변수로 바이트 수를 지정할 수 있습니다.

해당 매개변수는 서버와 클라이언트 간의 하나의 통신으로 수신됩니다. 따라서 첫 번째 경우에는 1024를 사용합니다.

그런 다음 받은 번호를 인쇄합니다. 전송되는 메시지가 인코딩되기 때문에 utf-8 바이트를 사용하여 디코딩해야 합니다.

예제 코드:

import socket

# We imported the socket library
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((socket.gethostname(), 1024))
msg = sock.recv(1024)
print(msg.decode("utf-8"))

서버 및 클라이언트 파일을 실행할 준비가 되었습니다.

같은 폴더에 있는 서버 및 클라이언트 파일

동일한 폴더에서 명령 프롬프트를 열어 이러한 파일을 실행하고 서버의 경로를 py Filename.py로 먼저 작성합니다. 따라서 우리의 경우 py SERVER1.py로 작성하고 Enter를 누릅니다.

커서가 깜박이는 것을 볼 수 있습니다.

그런 다음 py Filename.py라는 두 번째 파일을 실행하기 위해 다른 명령 프롬프트를 엽니다. 이 경우 py CLIENT1.py로 작성하고 Enter를 누릅니다.

출력:

클라이언트와 서버 간의 연결이 설정됨

두 파일을 모두 실행하면 Socket programming in Python 메시지가 표시됩니다.

소켓 플러시는 네트워크 애플리케이션으로 작업할 때 일반적인 작업입니다. 프로세스는 비교적 간단하지만 버퍼 데이터가 즉시 전송된다는 점을 기억하는 것이 중요합니다.

네트워크 애플리케이션으로 작업할 때 소켓 플러시가 작동하는 방식을 이해하는 것이 중요합니다. 약간의 연습으로 Python에서 소켓을 쉽게 플러시할 수 있습니다.

이 Python 문서가 Python 소켓 플러시 방법을 이해하는 데 도움이 되기를 바랍니다.

작가: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

관련 문장 - Python Socket