Maxima's Lab

[Python, TCP/IP] TCP/IP 개념 & 예제 코드 본문

Python/TCP IP

[Python, TCP/IP] TCP/IP 개념 & 예제 코드

Minima 2023. 3. 1. 16:26
728x90
SMALL

안녕하세요, 오늘은 TCP/IP 개념과 프로토콜을 사용하여 간단 예제를 구현하는 방법에 대해서 알아보도록 하겠습니다.

 

  • TCP/IP 는 인터넷 프로토콜 스위트 (Internet Protocol Suite)의 핵심적인 프로토콜로, 인터넷에서 데이터를 전송하기 위한 표준 프로토콜입니다. TCP는 신뢰성이 있는 연결 지향 프로토콜로, IP는 비연결성의 데이터그램 프로토콜입니다.

 

파이썬에서 TCP/IP 프로토콜을 구현하는 방법은 다음과 같습니다.

 

  1. 소켓 만들기
    • socket.scoket() 함수를 호출하여 소켓 생성
  2. 서버 연결 대기
    • 서버 소켓에 bind() 함수를 호출하여 IP 주소와 Port 번호를 할당
    • listen() 함수를 호출하여 클라이언트의 연결 요청을 대기
  3. 클라이언트 연결 수락
    • accept() 함수를 호출하여 클라이언트의 연결 요청을 수락
  4. 데이터 송수신
    • send() 함수를 호출하여 데이터를 송신
    • recv() 함수를 호출하여 데이터를 수신
  5. 소켓 닫기
    • close() 함수를 호출하여 소켓을 닫기

 


위의 코드는 하나의 클라이언트 연결 요청을 대기하면서 연결을 수락하고 데이터를 송수신하는 코드에 대해서 알아보겠습니다.

 

아래 코드는 Server (서버)에 대한 코드입니다. (server.py)

import socket

HOST = '127.0.0.1'
PORT = 12345

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        data = conn.recv(1024).decode()
        print('Received', repr(data))
        conn.sendall('Hello, World!'.encode())

 

이어서, 아래 코드는 Client (클라이언트)에 대한 코드입니다. (client.py)

 

import socket

HOST = '127.0.0.1'
PORT = 12345

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall('Hello, Server!'.encode())
    data = s.recv(1024).decode()

print('Received', repr(data))

 

위의 예제와 같이, 클라이언트가 먼저 서버에 데이터를 보내고, 서버가 데이터를 수신하는 것이 일반적인 동작 방식입니다. 이후 필요에 따라서, 서버에서 클라이언트에게 다시 데이터를 보낼 것인지에 대한 결정을 할 수가 있습니다.

 

 

이상으로, TCP/IP 개념과 프로토콜을 사용해서 간단한 예제를 구현하는 방법에 대해서 알아보았습니다.

728x90
LIST
Comments