250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 딥러닝
- 장고
- Computer Vision
- tensorflow
- kubernetes
- Python
- 데이터베이스
- paper review
- MariaDB
- POD
- GUI
- Web Programming
- Docker
- k8s
- numpy
- Deep Learning
- 파이썬
- Django
- vue.js
- Tkinter
- 웹 프로그래밍
- OpenCV
- 논문 리뷰
- 컴퓨터 비전
- yaml
- 파이토치
- FLASK
- pytorch
- 그래픽 유저 인터페이스
- 텐서플로우
Archives
- Today
- Total
Maxima's Lab
[Python, TCP/IP] TCP/IP 개념 & 예제 코드 본문
728x90
SMALL
안녕하세요, 오늘은 TCP/IP 개념과 프로토콜을 사용하여 간단 예제를 구현하는 방법에 대해서 알아보도록 하겠습니다.
- TCP/IP 는 인터넷 프로토콜 스위트 (Internet Protocol Suite)의 핵심적인 프로토콜로, 인터넷에서 데이터를 전송하기 위한 표준 프로토콜입니다. TCP는 신뢰성이 있는 연결 지향 프로토콜로, IP는 비연결성의 데이터그램 프로토콜입니다.
파이썬에서 TCP/IP 프로토콜을 구현하는 방법은 다음과 같습니다.
- 소켓 만들기
- socket.scoket() 함수를 호출하여 소켓 생성
- 서버 연결 대기
- 서버 소켓에 bind() 함수를 호출하여 IP 주소와 Port 번호를 할당
- listen() 함수를 호출하여 클라이언트의 연결 요청을 대기
- 클라이언트 연결 수락
- accept() 함수를 호출하여 클라이언트의 연결 요청을 수락
- 데이터 송수신
- send() 함수를 호출하여 데이터를 송신
- recv() 함수를 호출하여 데이터를 수신
- 소켓 닫기
- 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
'Python > TCP IP' 카테고리의 다른 글
[Python, TCP/IP] 다중 클라이언트 (Multiple Clients) 데이터 송수신 (0) | 2023.03.01 |
---|
Comments